Also ich mache das so:
Delphi-Quellcode:
ShellExecute(
Handle,'
runas',PAnsiChar(Application.Exename),'
',PAnsiChar(ExtractFilePath(Application.Exename)),0);
Application.Terminate;
(in FormCreate)
Damit wird die Anwendung beendet und neu ausgeführt, damit sich der Nutzer als Admin anmelden kann. (Ob das Programm mit Adminrechten läuft wird natürlich noch geprüft)
Das ist zwar nicht die eleganteste Lösung, funktioniert jedoch problemlos.