Mit Cmd überprüfen ob Taste gedrückt wird

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das geht mit dem CHOICE-Befehl. Auf Windows Vista und 7 gibt es den, ob auf 8.1, weiß ich nicht. Gib in CMD "choice /?" ein, dann bekommst du die entsprechenden Infos.

Benedikt19 
Fragesteller
 06.02.2015, 13:10

Ok ich Probiers mal aus.

0
Benedikt19 
Fragesteller
 06.02.2015, 15:26

Ich hab des mal ausprobiert und es gibt den Befehl Jetzt Meine Frage ist es Möglich das man das während eine Batch-Datei geöffnet ist das man des sooft man will und zu egal welcher Zeit das ausführen kann. sodass des dann in einer Schleife im Hintergrund läuft und dann wenn man des Drückt das dann eine Aktion ausgeführt wird

0
S1r1us13  06.02.2015, 19:16
@Benedikt19

Ja, das geht, hat aber den Nachteil, dass du keine weitere Benutzereingabe erfragen kannst, solange die CHOICE-Frage nicht beendet ist. Es bietet sich also nur an, wenn der Prozess im Hintergrund automatisiert ist und den Benutzer nicht braucht.

@echo off
if "%~1" == "HintergrundProzess" goto :Hintergrund
start /b cmd /c %0 HintergrundProzess
[CHOICE-Befehl und was sonst nach CHOICE passieren soll]
exit /b

:Hintergrund
[Befehle, die im Hintergrund laufen sollen]
exit /b

Der IF-Befehl prüft, ob sich die Datei selbst gestartet hat, um den Hintergrundprozess auszuführen. Bei einem Doppelklick ist das nicht der Fall. Daher geht CMD weiter zum START-Befehl.

/B ermöglicht das Starten eines zweiten CMD-Prozesses im aktuellen Fenster. "%0" steht für den aktuellen kompletten Dateipfad. "HintergrundProzess" ist das erste (und hier einzige) Argument und wird durch %1 abrufbar.

Jetzt laufen 2 Prozesse in 1 CMD-Fenster. Der Hauptprozess fährt mit dem CHOICE-Befehl fort. Der Hintergrundprozess springt dank dem IF-Befehl zu ":Hintergrund" und führt die dortigen Befehle aus.

Der Hauptprozess geht nur weiter, wenn der Benutzer etwas eingibt, was der CHOICE-Befehl abfragt. Ansonsten steht der Hauptprozess still.

Unabhängig von dem CHOICE-Befehl macht der Hintergrundprozess das, was in ihm steht.

Am Ende musst du beide Prozesse jeweils durch ein EXIT beenden.

Achtung: Im IF- und im START-Befehl muss das Argument unbedingt gleich heißen. Du musst also in beiden Befehlen - falls erwünscht - "HintergrundProzess" gleich verändern. Sonst startet sich die Batchdatei unendlich selbst und der PC stürzt ab.

0

Meinst du global ? Also egal ob das cmd Fenster den Fokus hat ? Das wird schwer....

Benedikt19 
Fragesteller
 05.02.2015, 17:45

Also so das das Man während man im Cmd-Fenster drin is und dann eine Taste drückt, dass man dann eine Aktion auslöst und würde das mit jeder Taste gehen?

0
Benedikt19 
Fragesteller
 05.02.2015, 19:41

Am Besten so das das man eine Aktion hat und gleichzeitig hald immer geprüft wird ob diese Taste gedrückt ist und wenn das der Fall is eine Weitere Aktion gestartet wird

0