Delphi WMI[3] 获取硬盘ID的方法(无需管理员权限)
function GetWMIHardNo() : String;
var
Locator : OleVariant;
WMI : OleVariant;
RET : OleVariant;
Enum : IEnumVariant;
Tmp : OleVariant;
Value : Cardinal;
begin
Result := '';
try
Locator := CreateOleObject('WbemScripting.SWbemLocator');
WMI := Locator.ConnectServer('.', '', '', '');
RET := WMI.ExecQuery('Select * From Win32_DiskDrive'); //Win32_DiskDrive Win32_PhysicalMedia
Enum := IUnknown(RET._NewEnum) as IEnumVariant;
while (Enum.Next(1, Tmp, Value)= S_OK) do
begin
Result := Trim(Tmp.SerialNumber);
if (Length(Result) > 0) then
begin break; end;
end;
finally
Locator := UnAssigned;
end;
end;
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.30001997947693 seconds