C# startup/autostart?
Hallo,
Wie mache ich mein Programm per script in den autostart(falls man eine api dabei hat bzw nuget...muss man die dann auch noch mit in den autostart packen und wenn, Wie?)
Vielen Dank im voraus!
1 Antwort
Z.B. so:
Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "MeinSupertollesProgramm", @"X:\MeinSupertollesProgramm\MeinSupertollesProgramm.exe");
Du könntest aber auch mit
string CommonStartupLocation = System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonStartup);
den Pfad des "Autostart"-Ordners ermitteln und dir eine Möglichkeit suchen, aus deinem Programm heraus eine Verknüpfung zu deinem Programm dort hin zu packen.
Brauchst du trotzdem. Ausser du verwendest Startup anstelle von CommonStartup.
Und auch Variante 1 geht ohne Adminrechte: Einfach HKEY_CURRENT_USER anstelle von HKEY_LOCAL_MACHINE.
Allerdings geht ohne Adminrechte natürlich nur dür den ausführenden Benutzer und nicht systemweit.
Oder einfach HKCU anstatt HKLM:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
PS:
Ok, ich war zu langsam ^^
Ja, Regedit kann nur mit erhöhten Rechten ausgeführt werden. Das liegt aber daran, dass es so programmiert wurde.
Hat aber mit Registryzugriff an sich nicht viel zu tun. Und natürlich kann der aktuell angemeldete Benutzer, egal ob er in der Gruppe "Administratoren" ist oder nicht den Inhalt von HKEY_CURRENT_USER ansehen, bearbeiten, etc. immerhin liegt dieser Hive in der Datei %userprofile%\NTUSER.DAT
Die zweite Variante wäre besser, damit man nicht Adminrechte zum Ausführen des Programms benötigt.
LG