如何在一系列输入后发送加法序列?
How to send an addition sequence after a series of input?
我要每次编Ctrl GUpEnter and Ctrl GDownEnter被按下,之后会Send !wi
。正常热键工作:
~^PgUp::
~^PgDn::Send !wi
但这不起作用,尽管 ~^g down enter
不是无效的热键:
~^PgUp::
~^PgDn::
::~^g down enter::
::~^g up enter::Send !wi
另外,由于我不知道很多次Up和Down会在Enter[=之前被按下29=],有没有办法让它跳过中间键?
尝试:
~^PgUp::
~^PgDn::Send !wi
~^g::
Input, key, V L1, {Enter}
if (ErrorLevel == "EndKey:Enter")
Send {Enter}!wi
return
一个简单的解决方案是在按下 ^g
时设置一个布尔标志。然后在按下 enter
时检查此标志,如果已设置则触发 !wi
。然而,这需要重置标志 - 因此,如果其他一些键可以结束序列,它也必须由这些键重置(参见代码底部的示例)。
await := 0
~^g::
await := 1 ; set flag
tooltip %await%
return
~enter::
if (await = 1) {
await := 0 ; reset flag
sleep 300 ; safety pause
send !wi
tooltip %await%
}
return
; note: the 'await' flag must be reset if other
; key can end the sequence.
; here for example escape or mouse click
~esc::
await := 0
tooltip %await%
return
~lbutton::
await := 0
tooltip %await%
return
我要每次编Ctrl GUpEnter and Ctrl GDownEnter被按下,之后会Send !wi
。正常热键工作:
~^PgUp::
~^PgDn::Send !wi
但这不起作用,尽管 ~^g down enter
不是无效的热键:
~^PgUp::
~^PgDn::
::~^g down enter::
::~^g up enter::Send !wi
另外,由于我不知道很多次Up和Down会在Enter[=之前被按下29=],有没有办法让它跳过中间键?
尝试:
~^PgUp::
~^PgDn::Send !wi
~^g::
Input, key, V L1, {Enter}
if (ErrorLevel == "EndKey:Enter")
Send {Enter}!wi
return
一个简单的解决方案是在按下 ^g
时设置一个布尔标志。然后在按下 enter
时检查此标志,如果已设置则触发 !wi
。然而,这需要重置标志 - 因此,如果其他一些键可以结束序列,它也必须由这些键重置(参见代码底部的示例)。
await := 0
~^g::
await := 1 ; set flag
tooltip %await%
return
~enter::
if (await = 1) {
await := 0 ; reset flag
sleep 300 ; safety pause
send !wi
tooltip %await%
}
return
; note: the 'await' flag must be reset if other
; key can end the sequence.
; here for example escape or mouse click
~esc::
await := 0
tooltip %await%
return
~lbutton::
await := 0
tooltip %await%
return