Autohotkey 正在执行循环结束后的所有内容

Autohotkey 正在执行循环结束后的所有内容

我正在使用 autohotkey 将 (hjkl) 设为我的箭头键,并且可以更快地滚动而无需向下/向上翻页,这使得阅读带有大量插图的教科书变得更容易。

问题是,一旦我的“空格键”循环完成,ahk 就会执行所有操作。例如,在下面的代码中,它将向下移动 16 个空格,向上移动 1 个空格。除非我按“z”,否则它不应该向上移动一个空格。

Suspend On

h::Left
j::Down
k::Up
l::Right

space::
    Loop,8{
        Send {Down}
        Send {Down}
    }

z::
    Send {Up}

+Capslock::
CapsLock::Suspend Off
CapsLock Up::Suspend On

我已经看了一些关于循环的教程,但我看不出我哪里做错了。其余代码都正常工作。

答案1

你需要return在每行末尾方法或热键。否则,从逻辑上讲,您没有指定某个方法何时结束。请注意,单行方法有一个隐含的return语句。

我已经清理并修复了你的脚本(我对逗号、大写字母、缩进/空格以及将括号放在自己的行上有严格的要求):

Suspend, On

h::Left
j::Down
k::Up
l::Right

Space::
    Loop, 8
    {
        Send, {Down}
        Send, {Down}
    }
    return

z::
    Send, {Up}
    return

+CapsLock::
CapsLock::Suspend, Off
CapsLock Up::Suspend, On

相关内容