我们正在使用 Delphi XE5 将我们的应用程序套件迁移到 64 位。在我们的关于框中,我们显示 CPU 速度。我们目前使用的例程是32位汇编,因此无法在64位下编译。
是否有从 Delphi 64 位中检索 CPU 速度的 native 方法?
最佳答案
如果您的平台是 Windows 并且您想要宣传的 CPU 速度,那么您可以简单地检查 HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\~MHz
注册表中的 DWORD 值:
program SO21757165;
{$APPTYPE CONSOLE}
{$R *.res}
uses
Registry,
Windows,
System.SysUtils;
function GetCPUSpeed : String;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create(KEY_QUERY_VALUE);
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly('HARDWARE\DESCRIPTION\System\CentralProcessor\0') then
begin
Result := Format('CPU Speed is %dMHz', [Reg.ReadInteger('~MHz')]);
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
Writeln(GetCPUSpeed);
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
编辑
将上面的代码片段重写为一个可编译的示例。此示例已在 XE7 中验证并在 32 位和 64 位环境中工作(启用 UAC)
关于delphi - 如何从 Delphi 64 位应用程序 (XE5) 获得 CPU 速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21757165/