Ja, des mit dem CreateMutex verstehe ich auch nicht ganz in diesem Zusammenhang.
Nach etwas Suchen habe ich das Problem eingrenzen können:
Die
UAC prüft, ob das Aufrufende
Handle den Focus hat bei ShellExecute. Also übergebe ich jetzt mal statt hInstance das Aktuelle Form.Handle und lege vorher den Focus auf es.
Quelle:
MSDN UAC Taskleisten Prompt
Aber schön ist das noch nicht. Geht gerade über Terminalserver z.B. nicht. Und für einen simplen Updater gleich ein
COM-Interface mitinstallieren, um Zugriffsrechte auf das Programmverzeichnis zu haben - da fühl ich mich nicht wohl. Nicht das das ein Sicherheitsloch aufreißt.
Besteht denn irgendwie die Möglichkeit, beim ShellExecute nicht zu warten. Oder ist dies die Auswirkung des
UAC, daß erstmal alles gestoppt wird?
Gruß winkel79