求delphi2010 获取 cpu 核心,内存型号和内存大小等硬件信息代码。
解决方案 »
- mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -120, 0)
- 廉价出售ASP、Delphi书籍
- ★★★急急急……关于EPSON LQ-1600自定义纸张问题,希望各位帮忙,谢谢!!!
- vcl应用
- Object Pascal 语言相关问题!
- 我写了个网络程序,用到了tnmudp组件,原来运行正常,但在重新覆盖安装WIN98后运行出现异常,盼高手解答!
- 如何动态生成函数名?up有分!!!!
- !!!!!!!!!求《Delphi 5.X ADO_MTS_COM+高级程序设计篇》电子书完整下载!!!
- 有没有判断一个字符串是否符合某种格式的函数?
- 关于radiogroup一问
- 多文件处理
- 紧急求助,在线等,关于osagent的跨网段
http://xeonfeng.bokee.com/4938068.html
function TViewSystemInfoFrm.GetCPUname: string;
var
Reg: TRegistry;
begin
Result := '';
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\Hardware\Description\System\CentralProcessor\0', False) then
Result := Reg.ReadString('ProcessorNameString');
finally
Reg.Free;
end;
end;//只能读取到线程数,核心数求教中。CPUCount 是system 下面的可以直接用。
Memo1.Lines.Add(Format('1、 系统中共有 核心数/%d 线程数',[CPUCount]));
在Delphi里需要先导入 Microsoft WMIScripting V1.x Library, Component->Import Component->Import type library->"先中类库"->Add unit to project
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 TForm1.Button1Click(Sender: TObject);
begin
// ShowMessage(GetWMIProperty('BIOS','BIOSVersion')); //获得BIOS版本
ShowMessage(GetWMIProperty('DiskDrive','SerialNumber')); //获得第一块硬盘的设备标示
// ShowMessage(GetWMIProperty('Processor','ProcessorId')); //获得CPUID。
end;
用api
要获取各种硬件的详细信息,还是得需要在Ring0下面弄