The next code shows how detect If my Delphi application is running under a 64-bit version of Windows.
uses Windows; function IsWow64Process: Boolean; type TIsWow64Process = function( hProcess: Windows.THandle; var Wow64Process: Windows.BOOL): Windows.BOOL; stdcall; var IsWow64Process: TIsWow64Process; Wow64Process : Windows.BOOL; begin Result := False; IsWow64Process := GetProcAddress(GetModuleHandle(Windows.kernel32), 'IsWow64Process'); if Assigned(IsWow64Process) then begin if not IsWow64Process(GetCurrentProcess, Wow64Process) then Raise Exception.Create('Invalid handle'); Result := Wow64Process; end; end;