ich ein kleines C# /. NET 4.0-Anwendung geschrieben haben, die in den Programmdateien installiert verschiedene Einstellungen von einem Spiel synchronisiert und von anderen Kopien des gleichen Spiels auf verschiedenen Maschinen (man denke Chrome Lesezeichen-Synchronisierung, aber für dieses Spiel). Die Synchronisierung selbst ist eine relativ einfache Angelegenheit, die sich mit Dateien beschäftigt, die im Ordner "Programme" des Spiels gespeichert sind.
Auf meinem Computer funktioniert das gut, ohne meine Anwendung über UAC zu erhöhen. Windows 7 lässt das Programm mit der Virtualisierung von Programmdateien arbeiten und meine Anwendung funktioniert gut damit.
Aber auf vielen Maschinen des Testers bekomme ich Berichte, dass die Anwendung entweder nicht mit den Dateien arbeiten kann und in manchen Fällen den Ordner des Spiels nicht sehen kann! Wenn der Benutzer mit der rechten Maustaste klickt und "Als Administrator ausführen", wird das Problem in jedem Fall gelöst.
So, wir nur das Manifest der Anwendung festlegen, um Administratorrechte benötigen, nicht wahr? Das ist gut (wenn auch nicht ideal), wenn der Benutzer die Anwendung oder den Synchronisierungsprozess manuell aufruft, da sie mit der Anwendung interagieren und bereit sind, eine UAC-Anforderung zu akzeptieren.
Eine der Funktionen meiner Anwendung ist jedoch eine Option "Automatisch synchronisieren", mit der der Benutzer die Anwendung "einstellen und vergessen" kann. Mit diesem Set wird die Anwendung in die Registrierung unter HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run versetzt, um beim Start ausgeführt zu werden und in der Taskleiste zu sitzen und die Einstellungen im Hintergrund nach Bedarf zu synchronisieren.
Offensichtlich muss ich hier klüger sein. Die Eingabe einer UAC-Eingabeaufforderung, sobald sich der Benutzer bei seinem Konto anmeldet oder in zufälligen Abständen danach, ist nicht der richtige Weg.
Also, meine Frage!
Wie komme ich am besten zu einer Situation, in der ich beim Start eine Anwendung ausführen muss, die Administratorrechte benötigt? Gibt es eine Möglichkeit, dass der Benutzer eine Installation autorisiert, die dazu führt, dass das System die Anwendung automatisch mit den richtigen Berechtigungen ausführt, ohne beim Start/Login eine Eingabeaufforderung zu erhalten?
Update Nur um klar zu sein, muss dies im Code erreichbar sein.
Ich denke, das wird Sie aufklären: http://StackOverflow.com/Questions/2488632/Win-CR-Run-app-as-Administrator-without-uac-prompt/2488645#2488645 Prost :) – Machinarius