Vergiß alles, ich hab mich gerade damit etwas beschäftigt.
Unter XE kann man Osk.exe einfach ausführen. Im 64bit Explorer geht es nicht.
Hier wird geraten, dass .NET mit abgeschalteten Redirection nicht funktioniert. Das Shell zeugs mit ShellExecute geht alles außerdem über
COM, denn ich bekomme, wenn ich
CoInitializeEx(nil, COINIT_APARTMENTTHREADED or COINIT_DISABLE_OLE1DDE);
verwende, eine Prozedur wurde (im Modul) nicht gefunden. D.h. das alles ist in Windows ganz tief drin, denn osk.exe ist ja auch in der WhiteList für AutoElevation.
Delphi scheint da irgendetwas mit .NET inuts zu haben, damit es funktioniert.