Como quebrar um loop de auto-chave quando o aplicativo é fechado

1

Eu tenho uma autohotkey para inserir alguns pressionamentos de tecla repetidamente em um script antigo. Eu não sei de antemão quanto tempo vai durar, então eu tenho este script:

#NoEnv
^m::

Loop 
{
if (BreakLoop = 1)
  break 
  SEND, 3
  SEND, {Enter}
  SEND, {Enter}
  SEND, {Enter}
  SEND, {Enter}
  sleep, 100
}

Esc::
BreakLoop = 1
return

E eu espero que termine e entre no escape quando terminar (o temporizador está lá para que eu possa realmente escapar).

Assim que o script é concluído, a janela é fechada e eu gostaria de usar esse evento para quebrar o loop de auto-tecla, mas ainda não descobri como.

    
por Jóhann 16.02.2016 / 14:42

1 resposta

1

Você pode usar o WinActive ou o WinExist para verificar o fechamento da janela. Você também pode usar uma instrução while para combinar as instruções de quebra condicional, em vez de precisar de um if / break separado. Eu também me certificaria e inicializaria a variável BreakLoop caso você execute o script várias vezes sem reiniciá-lo totalmente.

#NoEnv
^m::
setTitleMatchMode, 2               ; inexact title match
myID := WinExist(myWinTitle:="A")  ; put WinSpy title details here
BreakLoop = 0
While !BreakLoop and WinActive("ahk_id" myID)
{
  SEND, 3
  SEND, {Enter}
  SEND, {Enter}
  SEND, {Enter}
  SEND, {Enter}
  sleep, 100
}

Esc::
BreakLoop = 1
return
    
por 17.02.2016 / 05:32

Tags