【发布时间】:2015-11-15 02:35:35
【问题描述】:
我有一个看起来不符合预期的简单脚本:
^j::
Send, {Down down}
Sleep, 10000
Send, {Down up}
Return
我希望它按住向下箭头键 10 秒钟,然后松开。相反,它按一次向下键,然后中断脚本直到重新加载。我做错了什么?
【问题讨论】:
标签: windows autohotkey
我有一个看起来不符合预期的简单脚本:
^j::
Send, {Down down}
Sleep, 10000
Send, {Down up}
Return
我希望它按住向下箭头键 10 秒钟,然后松开。相反,它按一次向下键,然后中断脚本直到重新加载。我做错了什么?
【问题讨论】:
标签: windows autohotkey
当通过上述方法按住某个键时,它不会像您实际按住它时那样开始自动重复(这是因为自动重复是一种驱动程序/硬件功能)。
使用SetKeyDelay并指定重复次数:
SetKeyDelay, 30
Send {Down 333}
333 约为 10000/30
或者,您可以在 loop 中执行此操作并检查其他密钥以停止发送 Down 密钥。
【讨论】:
找到了一个很好的解决方法,试试这样的脚本(根据自己的喜好调整 Mynumber 变量和 Sleep)
a::
Mynumber = 10
While Mynumber > 0
{
Send {Down DOWN}
Sleep 10
Send {Down UP}
Mynumber--
}
【讨论】:
根据文档,这应该可以工作:
To hold down or release a key: Enclose in braces the name of the key followed by the word Down or Up. For example:
Send {b down}{b up}
Send {TAB down}{TAB up}
Send {Up down} ; Press down the up-arrow key.
Sleep 1000 ; Keep it down for one second.
Send {Up up} ; Release the up-arrow key.
【讨论】: