Как узнать номер BIOS для разных версий Windows?

Windows 9X

{©Drkb v.3(2007): www.drkb.ru}

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

procedure TBIOSInfo.GetRegInfoWinNT;

{©Drkb v.3(2007): www.drkb.ru}

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;

нашел на http://www.sources.ru/delphi/system/get_bios_information_w9x.shtml
и http://www.sources.ru/delphi/system/get_bios_information_nt_2000_xp.shtm...
Автор ответа: МММ
Взято с Vingrad.ru http://forum.vingrad.ru

{ **** UBPFD *********** by delphibase.endimus.com ****

>> Получение серийного номера BIOS

Зависимости:

Автор: Gua, <a href="mailto:fbsdd@ukr.net">fbsdd@ukr.net</a>, ICQ:141585495, Simferopol

Copyright:

Дата: 03 мая 2002 г.

***************************************************** }


function GetBiosNumber: string;

begin

 result := string(pchar(ptr($FEC71)));

end;

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...