vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: System/Windows · Prozesse/Tasks   |   VB-Versionen: VB.NET28.03.08
Windows-Dienste ermitteln (.NET)

Zugriff auf Windows-Dienste - Windowsdienste auflisten und in ListView anzeigen

Autor:   Heinz PrelleBewertung:  Views:  14.135 
www.visual-basic5.deSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit nachfolgendem Code lassen sich alle aktuell ausgeführten Windows-Dienste eines beliebigen im Netzwerk erreichbaren Rechners ermitteln.

Erstellen Sie ein neues Windows-Forms Projekt und fügen den Verweis auf die Assembly "System.ServiceProcess" (in system.serviceprocess.dll) hinzu. Platzieren Sie anschließend auf die Form ein ListView-Control, eine TextBox und einen Button und fügen nachfolgenden Code ein:

Imports System.ServiceProcess
Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    With Me
      ' Form zentrieren.
      .CenterToScreen()
      ' Fenstertext setzen
      .Text = "Windows Dienste auflisten..."
      With Me.ListView1
        ' Ansichtsmodus vom ListView setzen
        .View = View.Details
        .FullRowSelect = True
        .Columns.Add("Dienst", -2)
        ' Eigenschaften der TextBox definieren.
        With Me.TextBox1
          ' Schrifteigenschaften initialisieren.
          Dim fnt As Font = New Font("Arial", 10.0F, FontStyle.Bold)
          ' Schrifteigenschaften  der TextBox setzen.
          .ForeColor = Color.Red
          .Font = fnt
          .Text = "." ' ...oder Computernamen ( im Netzwerk erreichbar... )
        End With
      End With
    End With
  End Sub
  ''' <summary>
  ''' Ermittelt Windows-Dienste. ComputerName = Sie koennen den Computernamen angeben.
  ''' </summary>
  ''' <param name="ComputerName">Computername oder . für aktuellen Computer</param>
  Private Function EnumWindowsServiceProcess( _
    Optional ByVal ComputerName As String = ".") As List(Of String)
 
    ' ServiceController initialisieren.
    Dim sc() As ServiceController
    ' Liste initialisieren.
    Dim List As New List(Of String)
 
    Try
      ' Variable sc() initialisieren
      sc = ServiceController.GetServices(ComputerName)
      ' Schleifendurchlauf...
      For n As Integer = 0 To sc.Length - 1
        ' Dienste an die Variable List uebergeben.
        List.Add(sc(n).DisplayName)
      Next
      ' Rueckgabe der ermittelten Dienste in der deklarierten Liste (List)...
      Return List
      ' Moegliche Fehler abfangen.
    Catch ex As Exception
      MessageBox.Show(ex.Message.ToString(), "Info")
    End Try
    Return Nothing
  End Function
  Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
 
    ' Computernamen anzeigen... Nur zum Hinweis oder zur Uebergabe 
    ' an (die) Funktion("EnumWindowsServiceProcess")
    Dim _computername As String = My.Computer.Name()
    ' Ausgabe des Computernamens in der Titelzeile der Form.
    Me.Text = _computername
    ' ListView - Item deklarieren
    Dim Item As ListViewItem = Nothing
    ' Enthaelt das ListView Control Eintraege werden diese entfernt.
    If Me.ListView1.Items.Count > 0 Then Me.ListView1.Clear()
 
    With Me.ListView1
      Try
        ' Funktion "EnumWindowsServiceProcess" aufrufen und 
        ' Ergebnis an Liste uebergeben.
        Dim List As List(Of String) = _
          Me.EnumWindowsServiceProcess(Me.TextBox1.Text) ' oder _computername
        ' Enthaelt die Liste Eintraege werden diese in einer 
        ' Schleife ausgelesen und an die Variable Item uebergeben.
        If List IsNot Nothing Then
          For n As Integer = 0 To List.Count - 1
            Item = New ListViewItem(List(n), 0)
            ' ListView mit den Werten aus der Variablen Item fuellen.
            .Items.Add(Item)
          Next
        Else
          ' Enthaelt die Liste keine Eintraege wird eine MessageBox angezeigt...
          MessageBox.Show("Keine Eintraege vorhanden!", "Info")
        End If
      Catch ex As Exception
        ' Entsteht ein Fehler wird dieser abgefangen.
        MessageBox.Show(ex.Message.ToString(), "Info")
      End Try
    End With
  End Sub
End Class



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.