Die Community zu .NET und Classic VB.
Menü

FAQ 0118: Wie kann ich Dienste starten, beenden oder eigene Dienste erstellen?

 von 

Frage 

Wie kann ich einen Dienst starten oder beenden?

Wie kann ich einen eigenen Dienst erstellen?

Hilfe gegen übriggebliebene Icons im SystemTray gibt es hier:
Ausschreibung: SystemTray aktualisieren.

Dienste per Shell starten oder beenden  

Mittels FAQ 0011: Eine andere Anwendung starten gestaltet sich das Starten und Beenden eines Dienstes recht einfach:

'   Dienst starten
Call Shell(Environ$("COMSPEC") & " /c net start Dienstname", vbHide)

'   Dienst beenden
Call Shell(Environ$("COMSPEC") & " /c net stop Dienstname", vbHide)

Listing 1: Dienste starten oder beenden

Dienste per WMI starten oder beenden  

WMI ist ab Windows 2000 im Lieferumfang enthalten und kann für frühere Windows-Versionen nachgerüstet werden.

Dim oWMIService As Object
Dim strComputer As String

strComputer = "."
Set oWMIService = GetObject("winmgmts://" & strComputer & _
                          "/root/cimv2:Win32_Service.Name='DienstName'")

'   Dienst starten
Call oWMIService.StopService

'   Dienst beenden
Call oWMIService.StartService

Listing 2: Dienste starten oder beenden

Klassen ServiceControlManager und ServiceManager  

Florian Rittmeier hat eine Klasse geschrieben, mit der man Dienste bequem handhaben kann:
Klasse ServiceControlManager

Kai Liebenau und Achim Neubauer haben ebenfalls ein Klassenpaket geschrieben:
ServiceManager-Klassenpaket

Modul Services  

Mario Grimm hatte dieses Beispiel gepostet:
Modul zum Starten oder Beenden von Diensten

Dienste erstellen  

Microsoft liefert ein OCX zusammen mit Visual Basic und Visual Studio aus, mit dessen Hilfe ein Dienst erstellt werden. Die Verwendung dieses OCX' zeigt Programm als NT-Service (Dienst) starten [Tipp 0467].

Alternativ kann man die Funktionen der Win32-API, die im OCX gebündelt werden, auch selbst deklarieren und aufrufen. In der Microsoft Knowledge Base gibt es einen Artikel dazu:
175948 - INFO: Running Visual Basic Applications as Windows NT Services
Wer sich diesen Artikel in der MSDN Library, die mit Visual Basic (oder Visual Studio) mitgeliefert wurde, anschaut, wird auch Quelltext finden.

Welcher Weg auch gegangen werden soll, Microsoft rät davon ab, Dienste mit Visual Basic zu erstellen. Die Gründe werden im zuvor genannten Artikel aufgeführt.

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.