Autohotkey 如何在一系列输入之后发送加法序列?
我想每次按下Ctrl GUpEnter和Ctrl GDOWNTER系列时,它都会Autohotkey 如何在一系列输入之后发送加法序列?,autohotkey,Autohotkey,我想每次按下Ctrl GUpEnter和Ctrl GDOWNTER系列时,它都会发送!wi之后。正常热键工作: ~^PgUp:: ~^PgDn::Send !wi 但是这不起作用,尽管~^g down enter不是无效的热键: ~^PgUp:: ~^PgDn:: ::~^g down enter:: ::~^g up enter::Send !wi 另外,由于我不知道在进入前会按多少次上下键,有没有办法让它跳过中间键 试试看: ~^PgUp:: ~^PgDn::Send !wi ~^g::
发送!wi
之后。正常热键工作:
~^PgUp::
~^PgDn::Send !wi
但是这不起作用,尽管~^g down enter
不是无效的热键:
~^PgUp::
~^PgDn::
::~^g down enter::
::~^g up enter::Send !wi
另外,由于我不知道在进入前会按多少次上下键,有没有办法让它跳过中间键 试试看:
~^PgUp::
~^PgDn::Send !wi
~^g::
Input, key, V L1, {Enter}
if (ErrorLevel == "EndKey:Enter")
Send {Enter}!wi
return
一个简单的解决方案是在按下
^g
时设置布尔标志。然后,当按下enter
并发射时,检查此标志!wi
(如果已设置)。但是,这需要重置标志-因此,如果其他一些键可以结束序列,则也必须由这些键重置(有关示例,请参阅代码底部部分)
如果在进入前按下其他键,如空格键、Escape键或任意键,该怎么办?或者如果没有按键?是否保证会按Enter键?毕竟,我问你为什么需要这样做,因为这种方法会带来复杂性。这是为了在更改便笺时快速放大OneNote。要做到这一点,中间必须有一个
向上
或向下
,以选择便笺下拉列表,并且必须按下Enter
。因此,我能想到的一个简单解决方案要求100%保证在选择项目后按下Enter键。如果不是的话,事情就变得复杂了。另一个简单的选项是为序列设置“超时”。然后您需要在某个时间之前选择以触发其他命令。为什么不直接绑定,比如说Ctrl+Enter或者一些自由键“发送回车,然后发送缩放”呢?这会简单得多。你在想什么简单的解决方案?设置一个超时是好的,但在这个特定的问题上,最好有一个前传序列?另外,使用自由键也不可靠,因为它无法在开始时检测到Ctrl+G
。当您只按^G
时,是否有办法在^G
之前发送一个键?(其余顺序仍然相同)
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