Autor Beitrag
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Sa 14.02.09 14:04 
Hallo zusammen!

Bei der Update-Funktion von meinem Programm werden bei Bedarf Admin-Rechte so angefordert:
ausblenden 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:
ausblenden 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

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 14.02.09 14:07 
Nutze nicht Shellexecute sondern Suche im MSDN IMPERSONATELOGGEDONUSER. Ein Beispiel habe ich hier: www.michael-puff.de/...el/Impersonate.shtml
jakobwenzel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Sa 14.02.09 14:27 
Danke, funktioniert perfekt!

Das ganze ist sehr gut beschrieben auf deiner Seite, nur der Download der Demo ist kaputt. :?

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 14.02.09 14:30 
Komisch. Keine Ahnung, wo die Datei hin ist.