如何让 autohotkey 仅用一个键绑定多个发送命令?

如何让 autohotkey 仅用一个键绑定多个发送命令?

例如当我按#1时它会发送hey

#1::
send hey

当我在 900 毫秒内再次按下时,#1我希望它发送hi等等。

所以我想要实现的是在给定的时间范围内按下相同的按钮来绑定多个命令。

答案1

要将按键链接在一起,N key presses per X milliseconds您可以使用以下结构:

key::
    x = ;milliseconds

    if n > 0
    {
        n += 1
        return
    }

    n = 1
    SetTimer, Chain, %x%
    return

    Chain:
        SetTimer, Chain, off

        if n = 1
        {
            ;if key was pressed 1x
        }
        else if n = 2
        {
            ;if key was pressed 2x
        }
        else if n > 2
        {
            ;if key was pressed 3x or more
        }

    n = 0
    return

因此,根据您的示例,我们有:

#1::
    x = 900

    if n > 0
    {
        n += 1
        return
    }

    n = 1
    SetTimer, Chain, %x%
    return

    Chain:
        SetTimer, Chain, off

        if n = 1
        {
            Send, hey
        }
        else if n = 2
        {
            Send, hi
        }

    n = 0
    return

答案2

很简单,只需使用Sleep命令并将毫秒传递给它。

#1::
Send hey
Sleep, 900 ; 1 second
Send hi
return

对于最后一句,使用全局变量和 if 表达式。因此,您将使用 if 来选择要发送的字符串,而不是“发送嘿”。然后您将全局变量设置为 1,之后您进入睡眠状态,睡眠后您将其设置回 0...

也可以看看: 如果热键睡觉变量

相关内容