Tipp 0071 Windows-Dienste auslesen
Autor/Einsender:
Datum:
  Michael Werner
30.03.2005
Entwicklungsumgebung:   VB.Net 2003
Framework:   1.1
Windows-Dienste besitzen keine graphische Oberflächen und laufen stets im Hintergrund ab. Sie werden vom Service Control Manager (SCM, zu deutsch: Dienstkontrollmanager) verwaltet, zu finden in der Systemsteuerung/Verwaltung/Dienste. Es können übrigens auch eigene Dienste erstellt werden (Projekttyp: Windows Dienst).
In diesem Tipp werden die installierten Dienste aufgelistet und dabei die aktiven von den deaktiven Diensten separiert.
 
Imports System.ServiceProcess

Public Class Form1
  Inherits System.Windows.Forms.Form

#Region " Vom Windows Form Designer generierter Code "
  Public Sub New()
    MyBase.New()

    ' Dieser Aufruf ist für den Windows Form-Designer 
    ' erforderlich.
    InitializeComponent()

    ' Initialisierungen nach dem Aufruf InitializeComponent()
    ' hinzufügen
    ListView1.View = View.Details
    ListView1.Columns.Add("Dienst", 300, HorizontalAlignment.Left)
    ListView1.Columns.Add("Status", 70, HorizontalAlignment.Left)
    AddHandler RadioButton1.CheckedChanged, _
          AddressOf Me.ListServices
    AddHandler RadioButton2.CheckedChanged, _
          AddressOf Me.ListServices
    AddHandler RadioButton3.CheckedChanged, _
          AddressOf Me.ListServices
    RadioButton1.Checked = True
  End Sub
  '...
#End Region

  Const MachineName As String = "."
  
  Private Sub ListServices(ByVal sender As System.Object, _
          ByVal e As System.EventArgs)
    Dim services() As ServiceController
    Dim i As Integer
    Dim j As Integer
    Dim item As ListViewItem
    ListView1.Items.Clear()

    Try
      services = ServiceController.GetServices(MachineName)
      For i = 0 To services.Length - 1
        If RadioButton3.Checked Then
          Label1.Text = RadioButton3.Text
          If services(i).Status.ToString = "Running" Then
            item = New ListViewItem(services(i).DisplayName, 0)
            item.SubItems.Add(services(i).Status.ToString)
            ListView1.Items.Add(item)
            j += 1
          End If
        ElseIf RadioButton2.Checked Then
          Label1.Text = RadioButton2.Text
          If services(i).Status.ToString = "Stopped" Then
            item = New ListViewItem(services(i).DisplayName, 0)
            item.SubItems.Add(services(i).Status.ToString)
            ListView1.Items.Add(item)
            j += 1
          End If
        Else
          Label1.Text = RadioButton1.Text
          item = New ListViewItem(services(i).DisplayName, 0)
          item.SubItems.Add(services(i).Status.ToString)
          ListView1.Items.Add(item)
          j += 1
        End If
      Next
      Label2.Text = j.ToString
    Catch ex As System.Exception
      MessageBox.Show(ex.Message)
    End Try
  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button2.Click
    Me.Close()
  End Sub
End Class
 
Weitere Links zum Thema
Systemeinstellungen auslesen
Systemereignisse überwachen

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (6,9 kB) Downloads bisher: [ 1083 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 23. Januar 2012