【发布时间】:2021-05-29 22:20:38
【问题描述】:
正如标题所说,我想在我正在编写的这个简单的批处理中使用操纵杆按钮进行输入。有没有可能?
我知道我可以使用 Joy to Keyboard 映射程序来模拟击键,但如果可能的话,我想避免这个额外的层。
编辑:根据 cmets 中的建议更新了代码。
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
【问题讨论】:
-
即使您卡在使用键盘映射器,您也可以通过使用宏来执行相关命令而不是所有 goto 来使您的脚本更有效率。还有比一秒延迟更好的延迟选项。
-
有趣,谢谢。你认为如果我使用包含每个“goto”选项的“if、else、else、else”语句会更好吗?
标签: batch-file cmd controller joystick gamepad