Gewusst wie: Abrufen von Listen von Diensten
Aktualisiert: November 2007
Mit der GetServices-Methode für die ServiceController-Klasse kann eine Liste von Diensten für einen bestimmten Computer abgerufen werden. Von der GetServices-Methode wird ein Array mit allen Diensten zurückgegeben, die für den Computer verfügbar sind. Ausgenommen sind die Dienste, die mit Gerätetreibern verknüpft sind. Diese können mit der GetDevices-Methode abgerufen werden.
Bei beiden Methoden kann entweder ein bestimmter Computer gewählt werden, für den Informationen abgerufen werden sollen, oder es können keine Parameter übergeben werden. In diesem Fall werden die Dienste für den lokalen Computer abgerufen.
So rufen Sie eine Liste von Diensten ab
Erstellen Sie ein Array vom Typ ServiceController, das die Ergebnisse der Abfrage enthalten soll.
Rufen Sie die entsprechende Methode für die ServiceController-Klasse auf. Legen Sie das Array auf eine der folgenden Weisen auf die Ergebnisse fest:
Rufen Sie die GetServices-Methode ohne Parameter auf, um die mit keinem Gerätetreiber verknüpften Dienste von dem lokalen Computer abzurufen:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetServices()
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices();
System.ServiceProcess.ServiceController services[]; services = System.ServiceProcess.ServiceController.GetServices();
Rufen Sie die GetServices-Methode auf, um die mit keinem Gerätetreiber verknüpften Dienste von einem bestimmten Computer abzurufen. Geben Sie den Computer, von dem die Informationen abgerufen werden sollen, als einen Zeichenfolgenparameter an:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetServices( _ "machinename")
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices( "machinename");
Rufen Sie die GetDevices-Methode ohne Parameter auf, um die mit einem Gerätetreiber verknüpften Dienste von dem lokalen Computer abzurufen:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetDevices()
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetDevices();
Rufen Sie die GetDevices-Methode auf, um die mit einem Gerätetreiber verknüpften Dienste von einem bestimmten Computer abzurufen. Geben Sie den Computer, von dem die Informationen abgerufen werden sollen, als einen Zeichenfolgenparameter an:
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetDevices( _ "machinename")
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetDevices( "machinename");
Mithilfe von folgendem Code wird gezeigt, wie ein Satz von Diensten auf dem lokalen Computer abgerufen wird und Informationen über die einzelnen Dienste in einem Listenfeld angezeigt werden. Beachten Sie, dass die GetServices-Methode ein Array von ServiceController-Objekten zurückgibt. Jeder zurückgegebene ServiceController stellt einen Dienst für den abgefragten Computer dar:
Sub ListServices() Dim ListBox1 As ListBox Dim services() As System.ServiceProcess.ServiceController Dim i As Integer services = System.ServiceProcess.ServiceController.GetServices() ListBox1.Items.Clear() For i = 0 To services.Length - 1 ListBox1.Items.Add(services(i).ServiceName) Next End Sub
private void ListServices() { ListBox listBox1 = null; System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices(); listBox1.Items.Clear(); for (int i = 0; i < services.Length; i++) { listBox1.Items.Add(services[i].ServiceName); } }
Dieses Codebeispiel ist auch als Visual Basic-IntelliSense-Codeausschnitt verfügbar. Das Beispiel befindet sich in der Codeausschnittauswahl unter Windows-Betriebssystem > Windows-Dienste. Weitere Informationen finden Sie unter Gewusst wie: Einfügen von Ausschnitten in den Code (Visual Basic).
Siehe auch
Aufgaben
Gewusst wie: Erstellen von Instanzen von ServiceController-Komponenten
Gewusst wie: Ausführen von Verwaltungsaufgaben für Dienste