Delphi 判断操作系统是32位或是64位

function IsWin64: Boolean;
var
  Kernel32Handle: THandle;
  IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL;
stdcall;
GetNativeSystemInfo :
  procedure(var lpSystemInfo: TSystemInfo); stdcall; isWoW64 :BOOL;SystemInfo :  TSystemInfo;
  const
    PROCESSOR_ARCHITECTURE_AMD64 = 9;
    PROCESSOR_ARCHITECTURE_IA64 = 6;
  begin
    Kernel32Handle := GetModuleHandle(KERNEL32.DLL);
    if Kernel32Handle = 0 then
      Kernel32Handle := LoadLibrary(KERNEL32.DLL);
    if Kernel32Handle <> 0 then
    begin
      IsWow64Process := GetProcAddress(Kernel32Handle, IsWow64Process);
      GetNativeSystemInfo := GetProcAddress(Kernel32Handle, GetNativeSystemInfo);
      if Assigned(IsWow64Process) then
      begin
        IsWow64Process(GetCurrentProcess, isWoW64);
        Result := isWoW64 and Assigned(GetNativeSystemInfo);
        if Result then
        begin
          GetNativeSystemInfo(SystemInfo);
          Result := (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) or (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64);
        end;
      end
      else
        Result := False;
    end
    else
      Result := False;
  end; 


procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsWin64 then
  begin
    showmessage(64位);
  end else
  begin
    showmessage(32位);

  end;
end;

 

Delphi 判断操作系统是32位或是64位

上一篇:Populating Next Right Pointers in Each Node--为每一个节点填充next right指针


下一篇:OFD电子证照模版制作工具 --(采用wpf开发)