key = ReadConsoleKey()
Delay
in SetConsoleOptions() auf
False
setzen. In diesem Fall gibt ReadConsoleKey()
#CONSOLEKEY_NONE
zurück, falls keine Taste gedrückt wurde.
Wenn ReadConsoleKey()
so eingestellt ist, dass er wartet, bis
eine Taste gedrückt wird, wird sein Verhalten auch von der Einstellung
CBreak
von SetConsoleOptions() beeinflusst. Wenn CBreak
auf True
gesetzt ist, was auch die Standardeinstellung ist,
reicht ein Tastendruck aus, damit ReadConsoleKey()
die Blockierung
beendet. Wenn CBreak
auf False
gesetzt ist, wird der Befehl
blockiert, bis ein Zeilenumbruch erfolgt.
Standardmäßig wird die Taste, die der Benutzer drückt, in der
Konsole als Echo ausgegeben. Wenn Sie das nicht möchten, setzen
Sie den Tag Echo
in SetConsoleOptions() auf False
.
Schließlich kann ReadConsoleKey()
auch Funktionstasten wie F1,
F2, Cursortasten, ESC usw. lesen. Wenn Sie möchten, dass ReadConsoleKey()
Funktionstasten unterstützt, müssen Sie die Konsole in den Tastaturmodus
versetzen, indem Sie den Tag Keypad
in SetConsoleOptions()
auf True
setzen. Wenn Sie das getan haben, kann ReadConsoleKey()
auch die folgenden Funktionstasten zurückgeben:
#CONSOLEKEY_ENTER #CONSOLEKEY_UP #CONSOLEKEY_DOWN #CONSOLEKEY_RIGHT #CONSOLEKEY_LEFT #CONSOLEKEY_BACKSPACE #CONSOLEKEY_DEL #CONSOLEKEY_F1 #CONSOLEKEY_F2 #CONSOLEKEY_F3 #CONSOLEKEY_F4 #CONSOLEKEY_F5 #CONSOLEKEY_F6 #CONSOLEKEY_F7 #CONSOLEKEY_F8 #CONSOLEKEY_F9 #CONSOLEKEY_F10 #CONSOLEKEY_F11 #CONSOLEKEY_F12 #CONSOLEKEY_F13 #CONSOLEKEY_F14 #CONSOLEKEY_F15 #CONSOLEKEY_F16 #CONSOLEKEY_INSERT #CONSOLEKEY_HOME #CONSOLEKEY_END #CONSOLEKEY_PRINT #CONSOLEKEY_PAGEUP #CONSOLEKEY_PAGEDOWN #CONSOLEKEY_IC #CONSOLEKEY_EIC |
Wie Sie sehen, beeinflussen viele Optionen vom Befehl SetConsoleOptions()
das Verhalten von ReadConsoleKey()
. Siehe SetConsoleOptions für Details.
Sie müssen den erweiterten Konsolenmodus mit EnableAdvancedConsole() aktivieren, bevor Sie diesen Befehl verwenden können. Siehe EnableAdvancedConsole für Details.
#CONSOLEKEY_NONE
, wenn
keine Taste gedrückt wurde und sich die Konsole im NoDelay-Modus
befindet