delphi xe10.4, windows10获取bios序列号
winapi.Windows, System.StrUtils,comobj, activex,
procedure TForm1.getBios;
var
objWMIService,Objs: OLEVariant;
colItems: OLEVariant;
colItem: OLEVariant;
oEnum: IEnumvariant;
iValue: LongWord;
obj: TObject;
begin
objWMIService := CreateOleObject('WbemScripting.SWbemLocator');
objs:=objwmiservice.ConnectServer('', 'root\cimv2', '', '');
colItems := objs.ExecQuery('SELECT * FROM Win32_BIOS', 'WQL', 0);
oEnum := IEnumVariant(IUnknown(colItems._NewEnum));
if oEnum.Next(1, colItem, iValue) = 0 then
begin
self.Memo1.Lines.Add('bios s/n:'+VarToStr(colItem.SerialNumber));
VarClear(colItem);
end;
colitems:=objs.execquery('select * from win32_'+edit1.Text,'WQL',0);
oEnum := IEnumVariant(IUnknown(colItems._NewEnum));
if oEnum.Next(1, colItem, iValue) = 0 then
begin
self.Memo1.Lines.Add('bios uuid '+VarToStr(colItem.name));
self.Memo1.Lines.Add('bios uuid '+VarToStr(colItem.serialnumber));
VarClear(colItem);
end;
end;