You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 11中不依赖第三方单元获取处理器名称

在Delphi 11中无需第三方组件获取Windows「系统>关于」中的处理器名称

完全可以借助Delphi 11自带的RTL/VCL单元和Windows API实现,无需任何第三方组件。以下提供两种可靠的实现方式:

方法1:通过注册表读取

Windows会将处理器名称存储在系统注册表的固定路径中,直接读取即可获取和「系统>关于」一致的内容:

uses
  Winapi.Windows, System.SysUtils, System.Win.Registry;

function GetProcessorName: string;
var
  Reg: TRegistry;
begin
  Result := '';
  Reg := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY); // 兼容32位程序在64位系统运行
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKeyReadOnly('HARDWARE\DESCRIPTION\System\CentralProcessor\0') then
    begin
      if Reg.ValueExists('ProcessorNameString') then
        Result := Trim(Reg.ReadString('ProcessorNameString'));
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;

说明

  • 添加KEY_WOW64_64KEY参数是为了让32位编译的程序能正确读取64位系统的注册表分支,避免获取到错误的简化版处理器名称。
  • 该方法执行速度快,不依赖额外系统服务。

方法2:通过WMI查询

使用Windows Management Instrumentation(WMI)查询官方硬件信息类,获取的Name属性与「系统>关于」显示内容完全一致:

uses
  Winapi.Windows, System.SysUtils, System.Win.ComObj;

function GetProcessorName: string;
var
  WbemLocator: OLEVariant;
  WmiService: OLEVariant;
  ProcessorSet: OLEVariant;
  Processor: OLEVariant;
  Enum: IEnumvariant;
  FetchResult: LongWord;
begin
  Result := '';
  try
    WbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
    WmiService := WbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
    ProcessorSet := WmiService.ExecQuery('SELECT Name FROM Win32_Processor', 'WQL', 0);
    
    Enum := IUnknown(ProcessorSet._NewEnum) as IEnumvariant;
    if Enum.Next(1, Processor, FetchResult) = 0 then
    begin
      Result := Trim(Processor.Name);
      Processor := Unassigned;
    end;
  except
    // 捕获COM相关异常,比如WMI服务未启动的情况
  end;
end;

说明

  • WMI是Windows官方的硬件/系统信息查询接口,兼容性好,除了处理器名称外还能获取更多硬件参数。
  • 需确保系统WMI服务(Winmgmt)处于运行状态,默认系统均已开启。

内容的提问来源于stack exchange,提问作者delphirules

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:19