Anfordern Administratorrechte während der Laufzeit
Frage
Wie beantrage ich Administratorrechte während der Laufzeit, damit der Benutzer die Aufforderung gegeben, es zu erlauben oder zu verbieten?
Lösung
Diese Information wird in der EXE-Datei Manifest geschrieben. Sie müssen das requestedExecutionLevel
Feld verwenden (aber nicht sicher, dass - versuchen, es zu highestAvailable
Einstellung und sehen, ob es das tut, was Sie brauchen). Siehe zum Beispiel hier für weitere Informationen (etwas ältere Artikel, aber immer noch gültig): http://blogs.msdn.com/b/cjacks/archive/2006/09/08/exploring- Manifeste-Teil-2-Standard-Namespace-and-UAC-Manifeste-in-windows-vista.aspx
Es gibt Tools in Visual Studio, die Sie einbetten Ihr eigenes Manifest lassen oder auch nur bearbeiten es. Auch gibt es ein Werkzeug in Perl geschrieben ( http://metacpan.org/pod/Win32 :: Exe :: Manifest ).
Andere Tipps
, wenn Sie es als Antwort auf eine Schaltfläche wollen (zB wie "Show Prozesse für alle Benutzer im Task-Manager), haben Sie Ihre Anwendung mit dem folgenden Verfahren resart
ShellExecute(0,L"runas",exepath,0,0,SW_SHOWNORMAL);