jakobwenzel - Sa 14.02.09 14:04
Titel: Rückkehr zum normalen User
Hallo zusammen!
Bei der Update-Funktion von meinem Programm werden bei Bedarf Admin-Rechte so angefordert:
Delphi-Quelltext
1:
| ShellExecute(0,'runAs',PChar(Application.ExeName),PChar('StartUpdate "'+UpdateFilename+'" '+Inttostr(Application.Handle)),nil,SW_SHOWNORMAL); |
Unter XP wird dann der Ausführen-Als-Dialog angezeigt, unter Vista sollte die UAC-Abfrage kommen ("sollte", weil ungetestet).
Wenn das Update fertig ist, wird das geupdatete Programm wieder gestartet, ganz normal über ShellExecute:
Delphi-Quelltext
1:
| ShellExecute(0,'open',PChar(fn),'updated',nil,SW_SHOWNORMAL); |
Unter XP läuft das ganze dadurch immernoch als Admin-User und nicht als normaler - was schlecht ist, da mein Programm Daten im Anwendungsdaten-Verzeichnis braucht. (Unter Vista ist es ja immernoch der gleiche Benutzer, nur mit mehr Rechten - das ist OK).
Gibt es einen praktikablen Weg, die Datei wieder als normaler Benutzer zu starten?
mfg
jakobwenzel