【发布时间】:2019-05-06 13:48:14
【问题描述】:
堆栈溢出的公平人!我今天的问题是如何检测按键,而不是在批处理窗口本身。我已经有了这个代码:
choice /c KEY /n /t 5 /d d
if %errorlevel%==1 goto restofcode
此仅在您选择批处理窗口本身时有效。我需要的是一种批量(或其他语言)的方法,以使其检测您是否在实际批处理命令行本身的 外部 按下 Ctrl+W。
有一个名为 GS Auto-Clicker 的程序,它会在您按下某个键时开始点击您的鼠标。就检测您按下的键而言,我想要这样的东西。
【问题讨论】:
-
可以使用来自 user32.dll 的
GetAsyncKeyState()。无论聚焦哪个窗口,这都会检测到按键。 -
您可以将键盘热键添加到快捷方式。然后你可以把一个script.vbs作为
createobject("WScript.Shell").AppActivate "Window Title"的目标。如果您在启动 bat 的快捷方式上放置热键,则该键将切换到 bat(如果它已经在运行)。 -
Rojo,你能给我一个如何使用 GetAsyncKeyState() 的例子吗?我想检测按键,然后运行命令。谢谢!
-
见
waitfprcmd。
标签: batch-file