VB Script zum Neustart eines Programms und beenden nach Zeit x
Hallo
Ich habe den Code in einem Beitrag hier im Board gesehen:
VB Script zum Beenden und Starten eines Programms
Jetzt habe ich versucht es an meine Bedürfnisse anzupassen:
Nur leider funktioniert das so nicht.
Hintergrund - Was ich gerne möchte:
Ab und zu hängt sich das Live Video meiner Kameras, die ich per HtmlWindow auf dem Desktop anzeige, auf.
Deshalb muß das laufende zuerst beendet - und dann neu gestartet werden.
Jetzt möchte ich gerne das das nach einer bestimmten Zeit wieder geschlossen wird um Strom zu sparen.
Habe zu Testzwecken da jetzt 2 Sekunden eingestellt - soll später auf eine halbe Stunde verlängert werden.
Könnt ihr mir sagen wo der Fehler ist ?
Vielen Dank im voraus
AC-Michael
Ich habe den Code in einem Beitrag hier im Board gesehen:
VB Script zum Beenden und Starten eines Programms
Jetzt habe ich versucht es an meine Bedürfnisse anzupassen:
P = "HtmlWindow1.exe" 'lt Anzeige per "tasklist"
Prog = """C:\Program Files (x86)\HtmlWindow1\HtmlWindow1.exe"" ""Cams1"" ""C:\Program Files (x86)\HtmlWindow - CamWebsites\2-Cams_v02_Eingang_Terrasse_uebereinander.htm""" 'Pfad zum Programm (für Neustart)
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set Proc = WMI.ExecQuery("Select * from Win32_Process Where Name = '" & P &"'")
For Each P In Proc
P.Terminate
Next
WScript.CreateObject ("WScript.Shell").Run Prog
WScript.Sleep 2000 '2 Sekunden Pause
P = "HtmlWindow1.exe" 'lt Anzeige per "tasklist"
Prog = """C:\Program Files (x86)\HtmlWindow1\HtmlWindow1.exe"""
For Each P In Proc
P.Terminate
Nur leider funktioniert das so nicht.
Hintergrund - Was ich gerne möchte:
Ab und zu hängt sich das Live Video meiner Kameras, die ich per HtmlWindow auf dem Desktop anzeige, auf.
Deshalb muß das laufende zuerst beendet - und dann neu gestartet werden.
Jetzt möchte ich gerne das das nach einer bestimmten Zeit wieder geschlossen wird um Strom zu sparen.
Habe zu Testzwecken da jetzt 2 Sekunden eingestellt - soll später auf eine halbe Stunde verlängert werden.
Könnt ihr mir sagen wo der Fehler ist ?
Vielen Dank im voraus
AC-Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2848660898
Url: https://administrator.de/forum/vb-script-zum-neustart-eines-programms-und-beenden-nach-zeit-x-2848660898.html
Ausgedruckt am: 26.03.2025 um 04:03 Uhr
7 Kommentare
Neuester Kommentar
Servus.
Da stimmt einiges nicht, mal abgesehen von den Redundanten Deklarierungen.
Grüße Uwe
Da stimmt einiges nicht, mal abgesehen von den Redundanten Deklarierungen.
Dim processName, myProg, objShell, objWMI, proc
processName = "HtmlWindow1.exe"
myProg = """C:\Program Files (x86)\HtmlWindow1\HtmlWindow1.exe"" ""Cams1"" ""C:\Program Files (x86)\HtmlWindow - CamWebsites\2-Cams_v02_Eingang_Terrasse_uebereinander.htm"""
Set objShell = CreateObject("Wscript.Shell")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
While True
For Each proc In objWMI.ExecQuery("Select * from Win32_Process Where Name = '" & processName &"'")
proc.Terminate
Next
objShell.Run myProg,1,False
WScript.Sleep 5000
Wend
Dachte das wolltest du so, da du den Abschnitt vom Beenden und Starten wiederholt hast, wenn du das nicht willst entferne einfach die While-Wend Schleife ...
Wenn du also nur einmal beenden und neu starten willst machst du das so:
Du solltest dich übrigens mit dem Inhalt des Codes mehr auseinandersetzen statt nur Copy n Paste zu machen, dann musst du dich nicht über Dinge wundern
. Never trust foreign code, always understand ist bevor you run it!
Wenn du also nur einmal beenden und neu starten willst machst du das so:
Dim processName, myProg, objShell, objWMI, proc
processName = "HtmlWindow1.exe"
myProg = """C:\Program Files (x86)\HtmlWindow1\HtmlWindow1.exe"" ""Cams1"" ""C:\Program Files (x86)\HtmlWindow - CamWebsites\2-Cams_v02_Eingang_Terrasse_uebereinander.htm"""
Set objShell = CreateObject("Wscript.Shell")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each proc In objWMI.ExecQuery("Select * from Win32_Process Where Name = '" & processName &"'")
proc.Terminate
Next
objShell.Run myProg,1,False
Wie kann ich das stoppen - im Taskmanager finde ich nichts.
Ich kann das nicht beenden.
Wenn du den wscript.exeProzess abschießt ist die Schleife beendet.Ich kann das nicht beenden.
Du solltest dich übrigens mit dem Inhalt des Codes mehr auseinandersetzen statt nur Copy n Paste zu machen, dann musst du dich nicht über Dinge wundern
Zitat von @AC-Michael:
Jetzt wird es beendet und startet neu - soweit so gut.
Es sollte aber nach x-Zeit wieder beendet werden - und dann aber nicht mehr neu gestartet werden.
Wenn ich das weiß ist das kein Problem:Jetzt wird es beendet und startet neu - soweit so gut.
Es sollte aber nach x-Zeit wieder beendet werden - und dann aber nicht mehr neu gestartet werden.
Dim processName, myProg, objShell, objWMI, proc
processName = "HtmlWindow1.exe"
myProg = """C:\Program Files (x86)\HtmlWindow1\HtmlWindow1.exe"" ""Cams1"" ""C:\Program Files (x86)\HtmlWindow - CamWebsites\2-Cams_v02_Eingang_Terrasse_uebereinander.htm"""
Set objShell = CreateObject("Wscript.Shell")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each proc In objWMI.ExecQuery("Select * from Win32_Process Where Name = '" & processName &"'")
proc.Terminate
Next
objShell.Run myProg,1,False
wscript.sleep 5000
For Each proc In objWMI.ExecQuery("Select * from Win32_Process Where Name = '" & processName &"'")
proc.Terminate
Next
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Grüße Uwe