Как получить информацию о BIOS в Windows NT, 2000, XP

Советы » BIOS » Как получить информацию о BIOS в Windows NT, 2000, XP

В NT/2000/XP не получится прочитать значения прямо из BIOS, однако, ничего не мешает нам считать нужные значения из реестра.

procedure

TBIOSInfo.GetRegInfoWinNT; var

Registryv: TRegistry; RegPath: string

; sl: TStrings; begin

Params.Clear; RegPath := 'HARDWAREDESCRIPTIONSystem'; registryv := tregistry.Create; registryv.rootkey := HKEY_LOCAL_MACHINE; sl := nil

; try

registryv.Openkey(RegPath, false

); ShowMessage('BIOS Date: ' + RegistryV.ReadString('SystemBiosDate')); sl := ReadMultirowKey(RegistryV, 'SystemBiosVersion'); ShowMessage('BIOS Version: ' + sl.Text); except

end

; Registryv.Free; if

Assigned(sl) then

sl.Free; end

;

На всякий пожарный:

// следующий метод получает многострочные значения из реестра
// и преобразует их в TStringlist

function

ReadMultirowKey(reg: TRegistry; Key: string

): TStrings; const

bufsize = 100; var

i: integer; s1: string

; sl: TStringList; bin: array

[1..bufsize] of

char; begin

try

result := nil

; sl := nil

; sl := TStringList.Create; if

not

Assigned(reg) then

raise

Exception.Create('TRegistry object not assigned.'); FillChar(bin, bufsize, #0); reg.ReadBinaryData(Key, bin, bufsize); i := 1; s1 := ''; while

i < bufsize do

begin

if

ord(bin[i]) >= 32 then

s1 := s1 + bin[i] else

begin

if

Length(s1) > 0 then

begin

sl.Add(s1); s1 := ''; end

; end

; inc(i); end

; result := sl; except

sl.Free; raise

; end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com