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;