uses
  ActiveX, ComObj;


function GetWMIProperty(WMIType, WMIProperty:AnsiString):String;
var
  Wmi, Objs, Obj:OleVariant;
  Enum:IEnumVariant;
  C:Cardinal;
begin
  try
    Wmi:= CreateOleObject(AnsiString('WbemScripting.SWbemLocator'));
    Objs := Wmi.ConnectServer(AnsiString('.'),AnsiString('root\cimv2')).ExecQuery(AnsiString('Select * from Win32_'+WMIType));

    Enum:=IEnumVariant(IUnknown(Objs._NewEnum));
    Enum.Reset;
    Enum.Next(1,Obj,C);
    Obj:=Obj.Properties_.Item(WMIProperty,0).Value;
    if VarIsArray(Obj) then Result:=Obj[0]
    else Result:=Obj;
  except
     Result:='Error';
  end;
end;


ShowMessage(GetWMIProperty('Processor','ProcessorId'));

 

相关文章:

  • 2022-12-23
  • 2021-09-14
  • 2021-09-24
  • 2021-09-17
  • 2021-09-25
  • 2022-12-23
  • 2022-02-02
猜你喜欢
  • 2022-12-23
  • 2021-11-10
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
相关资源
相似解决方案