командный файл, который обнаруживает нажатия клавиш.как? - PullRequest
5 голосов
/ 03 декабря 2010

я разрабатываю коллекцию видеоигр для командной строки (например, сделка или не сделка, крестики-нолики, гонки, головоломки лабиринта, соединяй четыре, бей крота и т. Д.), Однако это действительно облегчит мне задачу если бы я мог сделать так, чтобы, когда пользователь делает выбор (например, в каком направлении двигаться в игре), то, как только он нажимал клавиши со стрелками, он выполнял следующие операторы IF. Вместо того, чтобы нажимать ввод после каждого выбора. что-то вроде ...

:one1
set /p direction1= :
IF %direction1%== {ARROW KEY LEFT} goto two2
IF %direction1%== {ARROW KEY RIGHT} goto three3
IF %direction1%== {ARROW KEY UP} goto four4
IF %direction1%== {ARROW KEY DOWN} goto five5
goto one1

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 03 декабря 2010

Зависит от вашей версии Windows.

Если вы используете Vista, вы можете использовать choice , чтобы получать отдельные клавиши напрямую, но в чистом виде кажется, что невозможно обнаружить клавиши со стрелками.

EDIT

:one1
choice /c awsd /n /m "MOVE with A S D w"
IF %errorlevel%==1 goto two2
IF %errorlevel%==2 goto three3
IF %errorlevel%==3 goto four4
IF %errorlevel%==4 goto five5
goto one1
3 голосов
/ 01 ноября 2012
:start

choice /c:HPKM /n "Move with arrow keys"

if "%errorlevel%"=="1" {COMMAND}

if "%errorlevel%"=="2" {COMMAND}

if "%errorlevel%"=="3" {COMMAND}

if "%errorlevel%"=="4" {COMMAND}
0 голосов
/ 30 марта 2013

http://winsupport.org/packages/choice.exe

Это пользовательский выбор, позволяющий использовать клавиши со стрелками.

они используются следующим образом: choice / c: HPKM / n "Перемещение с помощью клавиш со стрелками"

Единственная проблема в том, что вы также можете использовать H, P, K и M ...

...