Feststellen, ob Dienst gestartet ist

HI!

Kennt ihr eine Methode, wie man feststellen kann, ob ein Dienst (in meinem Fall der Windows-Nachrichten-Dienst) gestartet oder gestoppt ist.

Danke

Gruß
Hans

Hi,

Systemsteuerung --> Verwaltung --> Dienste

zumindest bei WinXP.
Hoffe, ich konnte dir helfen.
MfG
pint

Hallo Hans,

probiere mal folgendes :smile:
Der Name des Dienstes sollte eigentlich Messenger sein. Bin mir da aber net 100% sicher :-s

Option Explicit
Dim oService As Object

Private Sub DienstePrüfen (Dienstname as String)
On Error Resume Next
Set oService = GetObject(„WinNT://“ & _
Environ(„computername“) & „/“ +Dienstname+",service")
If Err.Number = 0 Then
With oService
Select Case Index
Case 0
If .Status = 4 Then 'Ist gestartet
’ .Stop --> Hiermit kannst du den Dienst anhalten
End If
Case 1
If .Status = 1 Then 'Ist angehalten
'.Start --> Hiermit kannst du den Dienst starten
End If
End Select
End With
Else
MsgBox "Fehler: " & Err.Number & vbCrLf & _
Err.Description, vbCritical, „Fehler“
End If
End Sub

Mit dieser Sub kannst du den StartModus des Dienstes gleich einstellen :smile:
Achte aber dabei das du die Berchtigung dazu hast :s

Private Sub StartModusDiensteSetzen(Dienst As String)
On Error Resume Next
Set oService = GetObject(„WinNT://“ & _
Environ(„computername“) & „/“+Dienst+",service")
If Err.Number = 0 Then
With oService
Select Case Index
Case 0
.Put „StartType“, 2
.SetInfo
MsgBox „StartType=2 (automatic) für „+Dienst+“ gesetzt“
Case 1
.Put „StartType“, 4
.SetInfo
MsgBox „StartType=4 (deaktiviert) für „+Dienst+“ gesetzt“
End Select
End With
Else
MsgBox "Fehler: " & Err.Number & vbCrLf & _
Err.Description, vbCritical, „Fehler“
End If
End Sub

Ich hoffe es hilft dir ein wenig weiter

VLG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke
HI!

Vielen Dank für den Tipp. Hat alles geklappt.

Gruß Hans