首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

高分求DELPHI 下取多核CPU ID,硬盘的序号!该怎么处理

2012-04-02 
高分求DELPHI 下取多核CPU ID,硬盘的序号!!高分求DELPHI 下取多核CPU ID,硬盘的序号!!CUP ID:在网上找了很

高分求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编译测试通过:

Delphi(Pascal) code
 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;
[解决办法]
探讨
我用WMI的,win7 64位,SATA硬盘,D2010编译测试通过:

Delphi(Pascal) code

uses ActiveX, ComObj;
...
function GetWMIProperty(WMIType, WMIProperty:AnsiString):String;
var
Wmi, Objs, Obj:OleVariant;
Enum:I……

[解决办法]
探讨
读cpu已经没有意义,因为同系列的cpu的id都是一样的,读硬盘的我写了一个
http://topic.csdn.net/u/20110813/20/202cbe42-e8cc-4e93-82ef-6226e4a84210.html

热点排行