Autohotkey está executando tudo além do fim do meu loop

2

Estou usando o autohotkey para fazer (hjkl) as teclas de seta e rolar mais rápido sem fazer pagedowns / ups, o que facilita a leitura de livros didáticos com ilustrações grandes.

O problema é que o ahk está executando tudo quando o loop da "barra de espaços" está finalizado. Ex. no código abaixo, ele terá 16 espaços abaixo e um espaço acima. Não deve subir um espaço a menos que eu pressione "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

Eu assisti alguns tutoriais sobre loops agora e não vejo como eu poderia estar fazendo algo errado. O resto do código funciona.

    
por CornSmith 04.03.2012 / 03:35

1 resposta

4

Você precisa return no final de cada método de várias linhas ou tecla de atalho. Caso contrário, por lógica, você não especificou quando um determinado método termina. Observe que os métodos de linha única têm uma declaração return implícita.

Limpei e consertei o seu script (tenho um estilo rígido em vírgulas, letras maiúsculas, recuo / espaço em branco e colocar colchetes em sua própria linha):

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
    
por 04.03.2012 / 03:44