Solange man mit Delphi keine 64bit Programme erzeugen kann, reicht folgendes:
if IsProcess32OnWin64(GetCurrentProcess) then Exe:='%WinDir%\Sysnative\osk.exe' else Exe:='%WinDir%\system32\osk.exe';
Auch bis zum Ende gelesen zum Thema SysNative?
IsProcess32OnWin64 ist gleichbedeutend mit Deiner Is64BitViaRegistry (und ist auch Microsoft konform).
Leider nein. Ich habe auch auf 32bit-Systemen schon die Wow...Node gesehen. Da setzt man sich in die Nesseln. Lieber die Methode mit
IsWow64Process (wie in deinem Beitrag) oder
GetNativeSystemInfo (s.o.).