Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#34

Re: Auf Schreibrechte unter Win 7 prüfen

  Alt 8. Mär 2010, 12:36
Von ImpersonateLoggedOnUser kann ich nur immer abraten. Das muss man schon richtig verstehen, um damit umgehen zu können.

Da finde ich es schon einfacher mit ShellExecute und "runas"-Verb die Anwendung ein zweites Mal aufzurufen. Z.B. wenn ein Parameter "/update" angegeben wurde.

1. Anwender startet Programm
2. Programm prüft auf neue Updates
-> Wenn nicht vorhanden gehe zu 5.
3. Programm prüft, ob es Adminrechte hat
-> Wenn ja, dann gehe zu 3.
4. Startet sich selbst mit ShellExecute("runas") und beendet sich. Zweiter Prozess führt 4a aus.
4a. Prozess macht update.
Das Problem hier ist, dass du Anwendung und Installer in einer Datei hast, da es so nicht ohne weiteres möglich ist, die Anwendung ohne Adminrechte zu starten. Andernfalls hättest du im Punkt 4. einen Installer gestartet, der zwar sich selbst startet, aber den ersten Prozess nicht beendet. Dieser erste Prozess könnte die Anwendung ohne Adminrechte starten, wenn der Installer erfolgreich war. (Der Weg von Admin zu Nicht-Admin ist schwer in Windows)
5. Anwendung startet
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat