高分求DELPHI 下取多核CPU ID,硬盘的序号!!
高分求DELPHI 下取多核CPU ID,硬盘的序号!!
CUP ID:
在网上找了很多,有些太旧,有些不支技多CPU
HD ID(不是盘符):
也在网上找了很多,有许多都不支技SATA 硬盘。
哪位大侠帮助搞定,另外再送100分。
[解决办法]
注册表里去读
cpu在
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor
硬盘在
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi
[解决办法]
读cpu已经没有意义,因为同系列的cpu的id都是一样的,读硬盘的我写了一个
http://topic.csdn.net/u/20110813/20/202cbe42-e8cc-4e93-82ef-6226e4a84210.html
[解决办法]
我用WMI的,win7 64位,SATA硬盘,D2010编译测试通过:
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;procedure TForm2.Button1Click(Sender: TObject);begin ShowMessage(GetWMIProperty('BIOS','BIOSVersion')); //获得BIOS版本 ShowMessage(GetWMIProperty('DiskDrive','SerialNumber')); //获得第一块硬盘的设备标示 ShowMessage(GetWMIProperty('Processor','ProcessorId')); //获得CPUID。end;
[解决办法]