Frage

Ich benutzte die Anwendungsmanifestdatei wie hier einen Teil meiner Anwendung zu haben mit erhöhten Rechten ausgeführt wird (was es braucht).
Also, wenn nötig, ruft das Hauptprogramm nur eine kleine Montag Process.Start verwendet, die dann die Aufgabe übernimmt, für die Administratorrechte erforderlich sind.

Doch wie kann ich die gleiche Sache auf Windows XP tun?
Es scheint, XP einfach ignoriert dieses manifest und führt die kleine Baugruppe im aktuellen Benutzerkontext.

War es hilfreich?

Lösung

Der folgende Code von hier tut genau das, was ich brauche:

ProcessStartInfo processStartInfo = new ProcessStartInfo("path", "args");
processStartInfo.Verb = "runas";

using (Process process = new Process())
{
   process.StartInfo = processStartInfo;
   process.Start();
   process.WaitForExit();
}

Also in der Tat brauchen Sie „runas“ auf ProcessStartInfo.Verb einzustellen. Mit dem beigefügten Manifest dieses Code funktioniert jetzt unter Windows XP, Vista und 7.

Update:
Siehe auch diese Antwort auf eine ähnliche Frage . Dies ist im Grunde der gleiche Code, nur Argumente als auch mit.

Andere Tipps

Windows XP nicht UAC hat.

Sie müssen Process.Start mit den Anmeldeinformationen eines Benutzers mit Verwaltungs priviliges nennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top