Entwickler-Ecke

Sonstiges (.NET) - An Systemstart anheften


AeroX - Fr 07.03.08 22:23
Titel: An Systemstart anheften
Hallo,
ich möchte gerne dass mein Programm beim Start des
Pc's gestartet wird!

wie geht das?


JüTho - Sa 08.03.08 12:36

Hallo,

Du musst eine lnk-Datei speichern in einem der Verzeichnisse:
C:\Dokumente und Einstellungen\Dein Name\Startmenü\Programme\Autostart
C:\Dokumente und Einstellungen\AllUsers\Startmenü\Programme\Autostart

Die genauen Namen der Verzeichnisse erhältst Du über die Environment.GetFolderPath-Methode mit der Environment.SpecialFolder-Enumeration.

Für das Erstellen der lnk-Datei habe ich viele Hinweise auf shortcut.exe gelesen; suche einmal danach.

Gruß Jürgen


Timosch - Sa 08.03.08 14:15

user profile iconJüTho hat folgendes geschrieben:

Für das Erstellen der lnk-Datei habe ich viele Hinweise auf shortcut.exe gelesen; suche einmal danach.
Gruß Jürgen


Man ruft keine externen Anwendungen auf, um Betriebssystemfunktionen durchzuführen. Für soetwas gibt es API-Funktionen. Lnk-Dateien sind schlicht und einfach Verknüpfungen. Du brauchst also die .NET-Funktion zum Erstellen von Verknüpfungen. (Keine Ahnung, wie die heißt. Ich verwende Delphi/Win32.)
Andere (modernere) Möglichkeit: Registrierungseintrag unter:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run wenn es für alle Benutzer gelten soll, bei nur dem aktuellen Benutzer stattdessen unter HKEY_CURRENT_USER.
Also z.B. wenn dein Programm Test heißt und unter C:\Programme\Test\test.exe liegt: Den Wert "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\test" erstellen und darin "C:\Programme\Test\test.exe" eintragen.


AeroX - Sa 08.03.08 14:30

Ich bin bei google auf dieses Beispiel gestoßen,
aber es erscheint dieser Error:


Quelltext
1:
Der Typ- oder Namespacename "WshShell" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)                    



Quelltext
1:
2:
3:
4:
5:
6:
WshShell shell = new WshShell();
IWshShortcut link = shell.CreateShortcut(myURL) as IWshShortcut;
link.WindowStyle = 1;
link.TargetPath = TargetURI;
link.IconLocation = @"%SystemRoot%\system32\SHELL32.dll, 85";
link.Save();