Win Vista/7: Wie weiß die Anwendung, ob sie "elevated", also mit expliziten Adminrechten gestartet wurde?
-
Hallo!
Wie findet mein Programm heraus, ob es unter Windows Vista/7 explizit als Admin gestartet wurde?
Es soll auch mit XP kompatibel sein.Danke im Voraus!
-
http://support.microsoft.com/kb/118626/en-us
http://blog.m-ri.de/index.php/2007/03/15/ermitteln-ob-ein-prozess-als-administrator-lauft-oder-nicht/
-

Oh my gosh!
Und ich hatte auf ein, zwei Funktionen gehofft.
Naja, Windows halt. Wenigstens funktioniert es.Danke.
-
Ach, dazu noch zwei Fragen:
-
Ist es möglich, eine .exe so zu erstellen, oder etwas programmiertechnisch so zu machen, dass die Anwendung "elevated" gestartet wird, ohne dass man dies explizit tun muss?
Hab gerade die ATI Treiber installiert, und da habe ich glaube ich nicht explizit als Admin starten müssen. Das .exe-Icon hatte auch ein Schild-Symbol. -
Braucht man unter Win Vista/7 immer noch das "SeDebugPrivilege", um bestimmte Dinge zu tun (Dll injecten zB.)?
Danke!
-
-
Frage 2 gerade selbst beantwortet: Ja.
-
bei Visual Studio 2008:
Projekteigenschaften
-> Linker
-> Manifestdatei
-> UAC Ausführungsebenehier drin steht standardmäßig "asInvoker":
kurz, das Prog wird mit den Rechten ausgeführt, mit denen auch das
aufrufende Programm ausgeführt wird.es gibt noch "heighestAvailable" und "requireAdministrator"
letzteres ist das, was du suchst.
da bekommt dein Prog ein hübsches Schild-Symbol und beim Starten verdunkelt sich erstmal der Screen
und du wirst gefragt, ob du das Prog wirjklich benutzen möchtest
-
Dankesehr!
Ja, so war das, Bildschirm wird dünkler und man wird gefragt.
Aber das ist dann doch nicht das, was ich suche.
Wenn man nämlich in den Eigenschaften der .exe "Als Administrator ausführen" setzt, wird man nicht mehr gefragt.
So hätte ich das eigentlich gerne gehabt, aber das ist wohl nicht möglich.
Der Schutz würde dann ja auch keinen Sinn mehr machen...