批量循环期间捕捉击键

时间:2016-08-29 12:24:35

标签: batch-file keystroke

作为我的批量编程的小型培训,我最初遵循这个想法来组成一个小型的slotmachine。你可以给你的硬币,数字冲过来,当你按下按钮时,数字应该停在他们当前的值。如果他们都一样,繁荣,你赢得了大奖!

我现在的问题是循环过程中的按键捕获。我已经想到了类似于选择命令的东西,但是程序会在每个循环中停止等待键盘输入,而不是让游戏等待所有时间都非常烦人,但同样无聊,因为你可以检查你是否想要打一个特定按钮停止。

另一个想法是

set /p foobar=

然后使用!SendKeys!模拟一个Enter-Stroke(代码中包含所有必要的内容),忘记输入后输入的内容已被发送...

有没有办法在 ONE 批处理文件中完成此操作?或者我是否需要另外一个来模拟击键或者还有其他我错过的东西?

编辑:要清除:是否有任何命令可以在击键时更改某些内容,但如果没有触及任何内容则会运行?

提前感谢您的帮助!

问候

geisterfurz007

1 个答案:

答案 0 :(得分:4)

@echo off
setlocal EnableDelayedExpansion

rem Create an empty file
cd . > key.txt

rem Start a parallel process that wait for Enter key
rem and add a line to the empty file
start "" /B cmd /C "set /P = & echo line >> key.txt"

set "key="
:wait
   cls
   set "number=%random:~-4%"
   echo %number%
   echo/
   echo Press Enter key to stop the numbers...
   set /P key=< key.txt
if not defined key goto wait

echo The last number is: %number%