Autohotkey 如何在一系列输入之后发送加法序列?

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::

我想每次按下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::
    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