starten einer Datei wenn cmd durch das x geschlossen wird?
Hi,
Ich versuche eine batch Datei zu erstellen, die wenn man durch das x oben rechst schließt sich von alleine wieder öffnet, so dass immer nur ein Fenster offen ist.
Damit möchte ich ein freund ärgern.
meine bis jetzt geschriebene Datei sieht so aus:
@echo off
title Hi
color 2
cls
echo Hi.
pause
start start.bat
exit
3 Antworten
Warum mit VBS? das geht auch mit purer Batch. Wir wollen ja den Überwachungsprozess nicht total verstecken. das wäre dann kein Spaß mehr sonder bösartig...
In die Taskleiste minimieren sollte für einen Scherz reichen.
Die folgende Batch kennt zwei Modi:
- Die Hauptbatch die man sieht
- und den Aufpasser
Wenn noch kein Aufpasser existiert wird die Batch als solcher gestartet.
Dieser prüft jede Sekunde ob das Hauptfenster geschlossen wurde und startet dies neu...
Der Code ist eigentlich zu Schade für einen Anfänger, der nur mal einen Scherz machen möchte.
Eigentlich ist das etwas für Fortgeschrittene , welche ein Script an der Grenze des Machbaren zu würdigen wissen...
@echo off
rem Umlaute darstellen
chcp 65001 >nul
rem Hier dem Fenster einem Namen geben:
set "FensterTitel=Hi..."
if /i "%1"=="Watch" goto Watch
title %FensterTitel%
rem wenn diese Batch noch nicht in Watchmodus gestartet wurde du dies Minimiert!...
for /f "tokens=*" %%a in ('"tasklist /nh /fi "Windowtitle eq Watch*" |find /v "cmd""') do ( start "Watch" /min "%~f0" Watch )
rem ...ab hier alles was du machen möchtest
color 2
cls
echo Hi.
echo Du kannst das Fenster jetzt schließen!
pause
rem .....bis hier
exit /b
:Watch
rem Endlosschleife
for /l %%. in (0) do (
rem teste nach jeder sekunde ob das fenster nicht mehr existiert
timeout 1 >nul
for /f "tokens=*" %%a in ('"tasklist /nh /fi "Windowtitle eq %FensterTitel%" |find /v "cmd""') do (
rem starte Batch neu
start "" cmd /c "%~f0"
) )
Beendet wird der Spuk, indem das Fenster Watch in der Taskleiste geschlossen wird
Das kann man am besten mit 2 dateien (einer batch und einer vbs)
deine batch bleibt so aber die vbs wird die start datei.
In der vbs steht dann starte ... , wenn geschlossen starte nochmal
mir fällt aber gerade kein code ein
Wenn es ein unschließbares Fenster auch tut, egal welche Größe sollte es auch eine .VBS Datei tun. Mir fällt gerade aber auch kein Code ein
Also, ganz einfach (obwohl die Frage schon etwas alt ist):
:x
batch.bat
goto x
In batch.bat schreibst du dann dein Fenster.