BigBastis Blog

VB.NET: Eigenes Programm mit Windows starten lassen

Introduction

user

Sebastian Gross

Sebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.


LATEST POSTS

Handling too long scrollspy menus 10th June, 2015

Java: Create ZIP archive 23rd March, 2015

.NET

VB.NET: Eigenes Programm mit Windows starten lassen

Posted on .

Oftmals ist es es von Nöten sein eigenes Programm beim Hochfahren von Windows automatisch starten zu lassen. Dies ist nicht wirklich anspruchsvoll aber dennoch sehr nützlich!

Windows bietet uns hier 2 Möglichkeiten dieses Vorhaben umzusetzen. Die erste ist es eine Verknüpfung zu unserem Programm zu erstellen und diese dann im Autostart Verzeichnis zu platzieren.

winstart11Bild 1: Der Windows Autostart Ordner im Startmenü

Dieser Ordner befindet sich unter dem folgendem Pfad:

C:\Users\[BENUTZERNAME]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Windows führt automatisch alle Dateien aus, die sich in diesem Ordner befinden, nachdem der Startvorgang abgeschlossen ist!

Die zweite (und meiner Meinung nach), bessere Methode ist es, einen entsprechenden Eintrag in der Registry zu setzen. Dies hat auch den Vorteil, dass man später die Verknüpfung nicht suchen und entfernen muss und dass der Benutzer diese nicht ausversehen löscht.

Wenn ihr in den dafür vorgesehenen Ordner schaut werdet ihr feststellen, dass dort (wahrscheinlich) auch andere Programme ihr Unwesen treiben.

winstart2Bild 2: Weitere Autostart Einträge

Diesen Registry Ordner findet ihr im Regestrierungseditor unter folgendem Pfad:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

In dem folgenden Codebeispiel werden wir hier einen Eintrag mit dem Verweis auf unser Programm einfügen.

    Public Sub LoadOnStartup(ByVal DoOrNot As Boolean)

        Dim RegKey As String = "HKEY_CURRENT_USERSoftware" & _
                               "MicrosoftWindowsCurrentVersionRun"
        If DoOrNot = True Then
            My.Computer.Registry.SetValue _
            (RegKey, "[PROGRAMMNAME]", My.Application.Info.DirectoryPath & _
                                "" & My.Application.Info.AssemblyName & ".exe")
        Else
            My.Computer.Registry.SetValue _
            (RegKey, "[PROGRAMMNAME]", "")
        End If

    End Sub

Wie man sieht ist es dank .NET nicht wirklich schwer einen Registryeintrag zu erstellen und zu bearbeiten, denn wenn ihr nicht mehr wollt, dass euer Programm mit Windows gestartet wird, löscht ihr den Eintrag einfach oder gebt statt dem Pfad etwas anderes ein.

In dem Code verwende ich den Kern-Schlüssen „HKEY_CURRENT_USER“ statt des oben erwähnten „HKEY_LOCAL_MACHINE“. Dies heißt nur, dass das Programm nur bei dem User Automatisch starten wird, der diesen Code ausführt. Benutzt man allerdings „HKEY_LOCAL_MACHINE“ wird das Programm bei allen Benutzern des Computers automatisch gestartet!

Zur Benutzung: Ruft diese Funktion einfach auf und übergebt True um euer Programm automatisch starten zu lassen, oder False um dies wieder zu unterbinden!

Da dies nur ein Copy & Paste Beispiel ist, habe ich hierfür kein Demoprojekt angefertigt, ich hoffe ihr könnt mir verzeihen! 🙂

profile

Sebastian Gross

http://www.bigbasti.com

Sebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.

There are no comments.

Kommentar verfassen

View Comments (0) ...
Navigation