- 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;
来源: http://www.bubuko.com/infodetail-3465067.html