Da Sie die Anwendung festlegen möchten beim Start für alle Benutzer ausgeführt werden, kein, können Sie sich um nicht irgendeine Art von Administratorzugriff erforderlich ist.
Warum ist das? Nun, als ein Gedankenexperiment, lassen Sie uns sagen, dass Windows Anwendungen erlaubt, Programme so einzustellen, dass sie beim Start ohne ein Administrator-Passwort ausgeführt werden. Dies würde jedoch den Zweck vieler Sicherheitsverbesserungen in Vista mit der Einführung von UAC und dem Aufkommen von Nicht-Administrator-Accounts standardmäßig zunichte machen. Ein Benutzer könnte ein Spiel herunterladen, das tatsächlich ein Trojaner war, und das Spiel könnte Malware so einrichten, dass sie beim Start für alle Benutzer ausgeführt wird, ohne dass die UAC-Eingabeaufforderung erforderlich ist. Daher können Sie in Windows nicht festlegen, dass das Programm beim Start ohne Administratorrechte ausgeführt wird.
Es gibt einige Tricks, die Sie verwenden können, um den Benutzer dazu zu zwingen, Ihr ganzes Programm als Administrator auszuführen. Meine erste Idee ist ein zweites Programm, dessen einzige Aufgabe es ist, das Hauptprogramm beim Start zu starten und es mit der Option ProcessStartInfo.Verb = "runas"
zu starten (vorausgesetzt, Sie verwenden System.Diagnostics.Process, um den neuen Prozess zu starten), damit das Hilfsprogramm ausgeführt wird als Administrator, aber Ihre gesamte Anwendung kann ohne die UAC-Eingabeaufforderung gestartet werden.
EDIT: Als Antwort auf Ihren Kommentar
Ja, wenn Sie zum Starten des Programms beim Start für einen einzelnen Benutzer interessieren, haben Sie viel mehr Möglichkeiten. Wie in this O'Reilly article beschrieben, besteht eine Option darin, in HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run zu schreiben, damit Ihr Programm beim Start für den aktuellen Benutzer ausgeführt wird.
Soll die Anwendung beim Start für alle Benutzer oder für den Benutzer ausgeführt werden, der gerade angemeldet ist? –
@Adam Mihalcin: Es wäre gut, die Anwendung für jeden Benutzer auszuführen. – Cipher