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;
posted on 2020-03-16 22:14 windsonvip 阅读(1011) 评论(0) 编辑 收藏 举报