Dennoch könntest du ein
Handle (z.B. ein Fensterhandle) als Parameter mitgeben, über das das gestartete Programm z.B. eine Windows Message schicken kann als Antwort.
Das bringt mir nichts. Das Programm benutzt ein
Mutex, um mehrfache Instanzen zu verhindern. Ich muss also die laufende Instanz sofort nach (einem erfolgreichen) ShellExecuteEx schließen, damit die neue Instanz die Chance hat, zu starten. Da die Funktion ShellExecuteEx im Falle von 'runasuser' sofort die Kontrolle an das Programm zurückgibt, beendet sich das Programm und das war's; es wird keine neue Instanz gestartet und die laufende beendet sich.
Nebenbei bemerkt ist ShellExecuteEx bei 'runasuser' immer erfolgreich, auch wenn man im "Ausführen als"-Dialog gar nichts macht (ihn also stehenlässt). Man kann also gar nicht unterscheiden, wie der Nutzer den "Ausführen als"-Dialog verlässt. Ich hoffe, nun ist klar, wo das Problem liegt.
Ich habe mir die Sache mal mit
AutoIt angeschaut und dort verhält sich Windows exakt genauso. Es liegt also wohl am Win7 selbst - ob von MS beabsichtigt oder nicht, bleibt offen.
MfG Dalai