Batch Wenn Programm1/2 beendet wird, dann schließt sich Programm 1/2 automatisch mit.

Vortexx

Lieutenant
Registriert
Apr. 2009
Beiträge
936
Wenn Programm1/2 beendet wird, dann schließt sich Programm 1/2 automatisch mit. *VBS*

Hi Leute,

Ich habe eine kleine Frage udn leider hat Google nix dazu gefunden, dass passen würden.

Ich habe hier diese Batch Datei:

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.run """????"""
wscript.sleep 4000
WSHShell.run """????"""


Er startet die beiden Programme auch. Aber ich würde gerne noch weiter gehen und sagen:

Sobald Programm 1 oder 2 beendet wird, schließt sich auch automatisch Programm 1/2.

Also einefach eine Bedingung beim Beenden.
Ich habe oft etwas von dem Befehl kill.exe geört, habe es aber nicht geschafft den einzubinden.
Normalerweise habe ich mit so etwas gar ncihts zu tun ;)

Am besten wäre es wenn jemand einfach den Befehl weiter ausfüllt, sodass ich ihn direkt kopieren kann, dann gibt es keine unnötigen Fragen wie das genau eingebunden wird.

Ich Danke schonmal :)


MFG
Vortexx
Ergänzung ()

Hat sich erledigt. Habe nach langen suchem endlich aus verschiedenen Foren etwa szusammengebastelt.

Kann geclosed werden.
 
Zuletzt bearbeitet:
Vortexx schrieb:
Ergänzung ()

Hat sich erledigt. Habe nach langen suchem endlich aus verschiedenen Foren etwa szusammengebastelt.

Kann geclosed werden.
O M G .. Warum postest Du nicht wenigstens Deine Lösung??? :freak:

Meine sieht so aus:
Code:
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
objTempFile = objFSO.GetTempName
Set objExec1 = WSHShell.Exec("calc.exe")
WScript.Sleep 1000
Set objExec2 = WSHShell.Exec("calc.exe")
LoopVariable = 0
Do Until LoopVariable  = 1
 WScript.Sleep 500
 WSHShell.Run "%comspec% /c TASKLIST /FI ""PID eq " & objExec1.ProcessID & """ >" & objTempFile, 0, True
 Set objTextFile = objFSO.OpenTextFile(objTempFile, 1)
 Do While Not objTextFile.AtEndOfStream
  If Instr(objTextFile.ReadLine,"INFORMATION:") <> 0 Then
   LoopVariable = 1
  End If
 Loop
 objTextFile.Close
 objFSO.DeleteFile(objTempFile)
 Set objExecTmp = objExec1
 Set objExec1 = objExec2
 Set objExec2 = objExecTmp
Loop
objExec1.Terminate()
objExec2.Terminate()
 
Zuletzt bearbeitet:
Hi

Das ist meine Lösung:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """????""",, false
wscript.sleep 4000
WshShell.Run """????""",, 7
WshShell.Run "C:\windows\system32\taskkill /IM ????", 0


MFG
 
, , 7 ???

Lies mal Run Method (Windows Script Host) ...

Ausserdem war doch Deine Anforderung das wenn eins der Programme beendet wurde das dass andere auch beendet werden soll ? Meine Lösung kann das jedenfalls. :cool_alt:
 
Meine kann das glaube ich nur mit einer .exe
Ich probiere deins mal aus ;)
Sieht so aus als hättest du sehr viel Ahnung davon, denn dein Script ist wesentlich komplexer ;)

MFG
Ergänzung ()

Habe noch ein Problem.

Bei dieser Batch Datei beendet er das andere Programm irgendwie nicht.

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.run """C:\Program Files\Logitech\Gaming Software\LWEMon.exe""" ,, false
wscript.sleep 2000
WSHShell.run """C:\Program Files (x86)\Codemasters\F1 2011\F1_2011.exe""" ,, 2
WshShell.Run "C:\windows\system32\taskkill /IM LWEMon.exe", 0

Die LWEMon.exe ist die Logitech Profiler Software, die sich nachdem ich F1 2011 beendet habe einfach nicht schließen möchte.

Muss ich vll irgendwo noch die Berechtigungen ändern?

MFG
 
Zurück
Oben