AHK Botão Gui funcionando como uma alternância?

1

Eu tenho procurado por um tempo agora em como fazer um botão GUI funcionar como uma alternância  por um simples loop.

Estou perplexo e preciso de ajuda. Aqui está o meu código.

#NoEnv

 #SingleInstance force

 #MaxThreadsPerHotkey 2

Gui, show, NoActivate w200 h200, TEST


Gui, Add, button, vbutton gbutton w80, button

return

button:

loop {

sendinput, c 

sleep, 700

}

return

escape::
exitapp
    
por Seiop09l8 11.04.2014 / 17:14

1 resposta

0

O seu loop não tem uma condição de saída que o faça parar.

loop
{
    while sendingKeys
    {
        sendinput c
        sleep, 700
    }
    sleep 100
}

Você colocaria esse código para ser executado imediatamente (em vez de estar em uma sub-rotina de botão). Você deve inicializar o envio de chaves antes do loop para ser o padrão para a inicialização do programa. O loop externo ainda não tem uma condição de saída, ele é executado para sempre até que o Escape dispare um evento ExitApp (que pode funcionar muito bem no seu caso).

sendingKeys := False    ; make the user toggle first before loop turns on

Na sub-rotina de botões, você deve simplesmente alternar a variável sendingKeys para ir entre true e false, que inicia o loop interno ou interrompe o loop interno quando a variável muda de estado.

button:

    sendingKeys := not sendingKeys

return

Quando o loop interno não está sendo executado, o loop externo apenas pesquisa e continua em execução até que o loop interno inicie a execução novamente.

    
por 25.09.2015 / 06:27