Windows Dienste

Was ist ein Dienst?

Ein Dienst (oft auch „Service“ genannt, im Unix-Bereich „Daemon“) ist ein Programm, welches ohne grafische Oberfläche und Benutzerinteraktion im Hintergrund läuft. Einen Überblick über aktuell laufende Dienste bekommt man über Systemsteuerung → Verwaltung → Dienste bzw. über die Eingabe von services.msc im Ausführungsdialog (Shortcut: Windows+r).
FIXME Screenshot

Wozu werden Dienste verwendet?

Dienste werden vor allem für Aufgaben verwendet, die nicht permanent verwendet werden, jedoch auf ein bestimmtes Ereignis warten. Unter den Standard-Diensten findet man den Telnet-Dienst, der es ermöglicht den Computer von außen zu steuern. Dieser Dienst muss ständig auf möglliche Verbindungsversuche von außen warten, selbst wenn niemand aktiv verbunden ist.

Dienst erstellen

Um einen Dienst in VB.NET zu erstellen wird die Professional Edition von Visual Studio benötigt, mit der Express Edition ist das nicht möglich! Microsoft bietet jedoch auf deren Homepage eine kostenlose 30-Tage Testversion an, die für dieses Tutorial verwendet werden kann.

  • onStart, onStop, …

Dienst manuell installieren und starten

Dienst installieren

  • installutil.exe

Dienst starten

  • services.msc
  • net start

Setup für einen Dienst erstellen

Dienst installieren

Dienst starten

Hinweise

Arbeitsverzeichnis

Es ist zu beachten, dass Dienste vom System gestartet werden und ihr Arbeitsverzeichnis deshalb das Systemverzeichnis ist. Unter Windows XP ist das folgendes:

C:\WINDOWS\system32

Dieses verhalten kann man jedoch ändern, üblich ist z.B. das Verzeichnis in dem die ausführbare Datei liegt:

Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory())

Ereignisanzeige

Über die Ereignisanzeige können Informationen über Events im Bezug auf Dienste abgefragt werden. Hier wird unter anderem aufgelistet, wann ein Dienst gestartet bzw. gestoppt wurde. Diese Anzeige erhält man unter Windows XP über Systemsteuerung → Verwaltung → Ereignisanzeige und einem Klick auf den Reiter System. Selbiges Fenster erhält man über die Eingabe von eventvwr.exe im Ausführungsdialog. Bei Events die Services betreffen wird als Quelle Service Control Manager angegeben.
FIXME Screenshot