Как получить информацию о BIOS в Windows NT, 2000, XP
Как получить информацию о BIOS в Windows NT, 2000, XP
Как получить информацию о 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;