Batch Taskill mit Messagebox?
Hallo,
Ich möchte ein kleines Batch Programm entwickeln, welches die ganze Zeit (wenn ein Programm arbeitet es schließt und ein anderes Programm startet.
Mein Batch Code wäre:
@echo off
color a
:start
cls
taskkill /f /im "notepad.exe"
goto start
Ich hätte gerne, dass wenn das Programm läuft (Notepad) ein einfaches Skript gestartet wird mit dem Befehl ,,START", z.B. If exist notepad.exe (dann sollte das beendet werden und eine Messagebox gestartet werden, z.B. start box.vbs
Kann mir da jemand weiter helfen?
2 Antworten
Warum erst Abfragen ob ein Prozess läuft?
Es ist ganz einfach, wir sagen Taskkill was es töten soll und lassen es gewähren.
Wenn nichts zu killen da war wird errorlevel 128 gesetzt. Der kann uns auch egal sein...
Wenn Taskkill erfolgreich (also kein errorlevel) , starten wir einen bedingten Aufruf (&&) des VBS...
(Fehler-)Meldungen von Taskkill werden total unterdrückt.
@echo off
start "" "notepad"
rem VBS mit Mesagebox erzeugen (ich mach das normalerweise anders, aber möchte einen Anfänger nicht durcheinander bringen)
echo res=Msgbox("Du sollst nicht mit Notepad arbeiten! ",vbOKonly+vbExclamation, "TaskKiller") >"myMsg.vbs"
rem hier wirds elegant:
rem Taskkill "tötet" Notepad .
rem wenn dies erfolgreich war wird das zuvor generierte VBScript gestartet
:loop
taskkill /f /im "notepad.exe" >nul 2>&1 && (cscript /nologo "myMsg.vbs")
rem kleine Pause sonst wird der Killprozess zu exzessiv
timeout 2 >nul
goto :loop
sry: echo res=Msgbox("Du sollst nicht mit Notepad arbeiten! ",vbOKonly+vbExclamation+vbSystemModal, "TaskKiller") >"myMsg.vbs"
Die Frage ist, was Du nun noch genau benötigst. Nur den Batch-Befehl oder auch das VBS-Script? Wenn Du über nur eine Batch-Datei herausbekommen willst, ob ein Programm läuft, dann geht das z.B. über:
tasklist /FI "IMAGENAME eq notepad.exe" 2>NUL | find /I /N "notepad.exe">NUL
if "%ERRORLEVEL%"=="0" (
taskkill /IM notepad.exe /F
start script.vbs
)