Programm beim Beenden eines Dienstes ausführen
Es soll beim Beenden eines Dienstes eine Anwendung beendet werden
Servus,
kann man beim Beenden eines Dienstes ein Programm (Batch) ausführen lassen, ähnlich einem Programm, das durch diesen Dienst gestartet wird?
Hintergrund:
Ich habe mittels "srvany" einen Dienst erstellt, welcher mir über eine Batch ein Programm startet (anders gehts leider nicht, die Batch MUSS sein). Wenn ich nun den Dienst beende, wird nur die Batch beendet, das Programm läuft weiter (logisch...).
Wenn man nun dem Dienst beibringen könnte, daß er beim Beenden noch eine andere Batch aufruft (Inhalt: KILL- Befehl für das Programm), wäre mein Problem gelöst.
Geht das irgendwie???
Danke!
Servus,
kann man beim Beenden eines Dienstes ein Programm (Batch) ausführen lassen, ähnlich einem Programm, das durch diesen Dienst gestartet wird?
Hintergrund:
Ich habe mittels "srvany" einen Dienst erstellt, welcher mir über eine Batch ein Programm startet (anders gehts leider nicht, die Batch MUSS sein). Wenn ich nun den Dienst beende, wird nur die Batch beendet, das Programm läuft weiter (logisch...).
Wenn man nun dem Dienst beibringen könnte, daß er beim Beenden noch eine andere Batch aufruft (Inhalt: KILL- Befehl für das Programm), wäre mein Problem gelöst.
Geht das irgendwie???
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77235
Url: https://administrator.de/forum/programm-beim-beenden-eines-dienstes-ausfuehren-77235.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
3 Kommentare
Neuester Kommentar
Hi,
ich habe das mit folgendem VBS-Script gemacht (der Ursprung stammt hier aus dem Forum - vielen Dank nochmals an den eigentlichen Verfasser / habe es ein bisschen angepaßt):
Wenn das Programm nicht mehr läuft, wird die entsprechene Batch aufgerufen (bei mir wird mittels BLAT eine entsprechende eMail versendet).
Grüße
Christian
ich habe das mit folgendem VBS-Script gemacht (der Ursprung stammt hier aus dem Forum - vielen Dank nochmals an den eigentlichen Verfasser / habe es ein bisschen angepaßt):
sProcessName = "Programm.exe"
sProcessName2 = "Actsrvnt.exe"
sProcessName3 = "TM_A.exe"
' Hier den Prozeß des Programms aus (siehe Taskmanager) angeben
sComputer = "."
Set oWmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")
Do
Set colProcessList = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName & "'")
Set colProcessList2 = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName2 & "'")
Set colProcessList3 = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName3 & "'")
If colProcessList.Count = 0 Then
oShell.Run "C:\Programme\watchdog\warn_programm.cmd", 1, False
' Hier den Pfad und die Btach angeben
End If
If colProcessList2.Count = 0 Then
oShell.Run "C:\Programme\watchdog\warn_faxsrv.cmd", 1, False
' Hier den Pfad und die Btach angeben
End If
If colProcessList3.Count = 0 Then
oShell.Run "C:\Programme\watchdog\warn_talkm.cmd", 1, False
' Hier den Pfad und die Btach angeben
End If
WScript.Sleep 5 * 60 * 1000
' Hier kann die Wartezeit bis zur nächsten Prüfung eingestellt werden. Standard: 5 min
Loop
Wenn das Programm nicht mehr läuft, wird die entsprechene Batch aufgerufen (bei mir wird mittels BLAT eine entsprechende eMail versendet).
Grüße
Christian