DELPHI判断是否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; 

posted @ 2014-01-06 14:58  孤舟残月浅笑嫣然  阅读(721)  评论(0编辑  收藏  举报