用 Delphi 检测ARM-CPU的最佳方法是什么?

ljsrvy3e  于 2023-02-22  发布在  其他
关注(0)|答案(1)|浏览(213)

使用 Delphi (在Windows 11 ARM上运行)检测ARM处理器架构的最可靠方法是什么?

kcugc4gi

kcugc4gi1#

雷米上面的建议很好,但是如果你想检测一个x86/x64程序是否在ARM Windows上运行,我认为你可以这样做(未经测试,因为我没有访问ARM Windows):

TYPE
  TImageFileMachine     = USHORT;
  TIsWow64Process2      = FUNCTION(Handle : THandle ; VAR ProcessMachine,NativeMachine : TImageFileMachine) : LongBool; stdcall;

CONST
  IMAGE_FILE_MACHINE_ARM64 = $AA64;

FUNCTION IsARM : BOOLEAN;
  VAR
    F   : TIsWow64Process2;
    P,N : TImageFileMachine;

  BEGIN
    @F:=GetProcAddress(GetModuleHandle('kernel32.dll'),'IsWow64Process2');
    IF NOT Assigned(F) THEN
      Result:=FALSE
    ELSE IF NOT F(GetCurrentProcess,P,N) THEN
      Result:=FALSE
    ELSE
      Result:=(N=IMAGE_FILE_MACHINE_ARM64)
  END;

相关问题