是否可以在 cmd 中使用 joystick/game 控制器输入?
is it possible to use a joystick/game controller input in cmd?
正如标题所说,我想在我正在编写的这个简单批处理中使用操纵杆按钮进行输入。有可能吗?
我知道我可以使用 Joy 到键盘映射程序来模拟击键,但我想尽可能避免这个额外的层。
编辑:根据评论中的建议更新了代码。
set /a "PC=0"
set DELAY=20
:START
CHOICE /C ABCD /M "Select [A]Channel Up [B]Channel Down [C]Program Change Up [D]Program Change Down"
IF %ERRORLEVEL% EQU 1 goto INCCH
IF %ERRORLEVEL% EQU 2 goto DECCH
IF %ERRORLEVEL% EQU 3 goto INCPC
IF %ERRORLEVEL% EQU 4 goto DECPC
goto START
:INCCH
if %CH% EQU 8 (set /a "CH=1") else (set /a "CH+=1")
goto SEND
:INCPC
if %PC% EQU 7 (set /a "PC=0") else (set /a "PC+=1")
goto SEND
:DECCH
if %CH% EQU 1 (set /a "CH=8") else (set /a "CH-=1")
goto SEND
:DECPC
if %PC% EQU 0 (set /a "PC=7") else (set /a "PC-=1")
goto SEND
:SEND
echo SEND MIDI program-change %CH% %PC%
sendmidi --out <port> --program-change %CH% %PC%
for /L %%a In (0 1 %DELAY%) do (ping -n 1 -w 99.99.99.99 > nul)
goto START
命令提示符无法识别键盘以外的任何类型的输入 - 它甚至不支持鼠标。
最好的办法是继续使用您当前使用的操纵杆到键盘模拟器。
正如标题所说,我想在我正在编写的这个简单批处理中使用操纵杆按钮进行输入。有可能吗?
我知道我可以使用 Joy 到键盘映射程序来模拟击键,但我想尽可能避免这个额外的层。
编辑:根据评论中的建议更新了代码。
set /a "PC=0"
set DELAY=20
:START
CHOICE /C ABCD /M "Select [A]Channel Up [B]Channel Down [C]Program Change Up [D]Program Change Down"
IF %ERRORLEVEL% EQU 1 goto INCCH
IF %ERRORLEVEL% EQU 2 goto DECCH
IF %ERRORLEVEL% EQU 3 goto INCPC
IF %ERRORLEVEL% EQU 4 goto DECPC
goto START
:INCCH
if %CH% EQU 8 (set /a "CH=1") else (set /a "CH+=1")
goto SEND
:INCPC
if %PC% EQU 7 (set /a "PC=0") else (set /a "PC+=1")
goto SEND
:DECCH
if %CH% EQU 1 (set /a "CH=8") else (set /a "CH-=1")
goto SEND
:DECPC
if %PC% EQU 0 (set /a "PC=7") else (set /a "PC-=1")
goto SEND
:SEND
echo SEND MIDI program-change %CH% %PC%
sendmidi --out <port> --program-change %CH% %PC%
for /L %%a In (0 1 %DELAY%) do (ping -n 1 -w 99.99.99.99 > nul)
goto START
命令提示符无法识别键盘以外的任何类型的输入 - 它甚至不支持鼠标。
最好的办法是继续使用您当前使用的操纵杆到键盘模拟器。