您的位置:首页 > 编程语言 > Delphi

Delphi 获取CPUID和制造商

2011-04-10 22:34 246 查看
网上C++代码转的

能正确获取

//获取CPUID
function GetCpuId(): UINT;
var
bException: BOOL;
szCpu: array [0 .. 15] of BYTE;
uCpuID: UINT;
begin
Result := 0;
ZeroMemory(@szCpu, sizeof(szCpu));
uCpuID := 0;
bException := False;

try
asm
mov eax, 0
cpuid
mov dword ptr szCpu[0], ebx
mov dword ptr szCpu[4], edx
mov dword ptr szCpu[8], ecx
mov eax, 1
cpuid
mov uCpuID, edx
end;
except
bException := TRUE;
end;

if not bException then
Result := uCpuID;
end;

//获取CPU厂商
function GetCpuName(): string;
var
bException: BOOL;
szCpu: array [0 .. 15] of BYTE;
uCpuID: UINT;
begin
Result := '';
ZeroMemory(@szCpu, sizeof(szCpu));
uCpuID := 0;
bException := False;

try
asm
mov eax, 0
cpuid
mov dword ptr szCpu[0], ebx
mov dword ptr szCpu[4], edx
mov dword ptr szCpu[8], ecx
mov eax, 1
cpuid
mov uCpuID, edx
end;
except
bException := TRUE;
end;

if not bException then
Result := StrPas(PAnsiChar(@szCpu));
end;

//调用示例
MessageBox(0, PChar(GetCpuName()), PChar('CPU制造厂商'), MB_OK);
MessageBox(0, PChar(Inttostr(GetCpuId())), PChar('CPUID'), MB_OK);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: