判斷是否運行在 x64 系統

1 篇文章 / 0 new
author
判斷是否運行在 x64 系統
若有資料指向 C:\windows\system32\, 但在 x64 運行下, 程式內路徑卻是要變成 C:\windows\Sysnative, 但在 window 的目錄仍舊是我們所看見的 C:\windows\system32. 因此程式需要判斷是否運行在 x64 系統. 方法如下
function IsRunX64: Boolean;
type
    TIsWow64Process = function(Handle:THandle; var IsWow64 : BOOL) : BOOL; stdcall;
var
    hKernel32 : Integer;
    IsWow64Process : TIsWow64Process;
    IsWow64 : BOOL;
begin
    Result := False;
    hKernel32 := LoadLibrary('kernel32.dll');
    if (hKernel32 = 0) then RaiseLastOSError;
    @IsWow64Process := GetProcAddress(hkernel32, 'IsWow64Process');
    if Assigned(IsWow64Process) then
    begin
        IsWow64 := False;
        if (IsWow64Process(GetCurrentProcess, IsWow64)) then
            Result := IsWow64;
        else
            RaiseLastOSError;
    end;
    FreeLibrary(hKernel32);
end;
Free Web Hosting