Windows 9X
Code: |
{©Drkb v.3} with Memo1.Lines do begin Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061)))); Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091)))); Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5)))); Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71)))); end; |
Windows NT
Code: |
procedure TBIOSInfo.GetRegInfoWinNT; {©Drkb v.3}
var Registryv : TRegistry; RegPath : string; sl : TStrings; begin Params.Clear;
RegPath := '\HARDWARE\DESCRIPTION\System'; 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;
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; |
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!