Bom dia cmbenevides.
Seja bem-vindo ao fórum da comunidade do AutoHotkey.
Você pode fazer isso de várias formas. Uma delas é condicionar o código a uma variável que seja usada para anotar execuções anteriores.
Exemplo: No código abaixo, ao pressionar a tecla F2 a primeira vez, o script escreverá a palavra "Este é", e ao pressionar a mesma teclas uma segunda vez, escreverá " um exemplo".
Code: Select all
Estado = 0
F2::
If (Estado = 0)
{
Send, Este é
Estado := 1
}
Else if (Estado = 1)
{
Send %A_Space%um exemplo
Estado := 0
}
Return
Outra forma de fazer isso é simplesmente dividir em duas hotkeys diferentes. Uma cuidará da primeira parte e outra cuidará da segunda. Neste caso o usuário ficaria responsável por decidir qual seguimento do código rodar após responder o captcha. No exemplo abaixo, F2 escreve a primeira parte e F3 escreve a segunda.
Code: Select all
F2::
Send, Este é
Return
F3::
Send %A_Space%um exemplo
Return
Também é possível de fato pausar o código no meio do script mediante alguma situação específica. Neste caso, você precisaria que o script contenha um sensor para a condição-alvo. Por exemplo, se aparece uma imagem na tela (como a do recaptcha) quando ele deve parar e depois essa imagem some quando ele deve prosseguir, você pode escrever uma rotina com
imagesearch ou
PixelSearchque pause o script caso a imagem exista na tela a partir de um
while +
imagesearch +
sleep colocados no momento da verificação/pausa desejada.
Code: Select all
Send Este é ; Este send simboliza comandos anteriores.
Var := 1 ; começamos definindo Var como 1 para que o while abaixo execute pelo menos 1 vez.
While (Var = 1) ; Depois usamos um while-loop para verificar Var. Isso vai rodar tantas vezes quanto necessário até que Var deixe de ser igual a 1.
{
imagesearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile ; Aqui pesquisamos a imagem desejada (tipo a imagem do recaptcha)
If (ErrorLevel = 0) ; Se ErrorLevel for 0 logo na saída do comando acima, isso significa que a imagem foi localizada.
{
Sleep 500 ; Nesse caso fazer o script "dormir" por 0,5 segundos.
}
Else ; Mas se o contrátio acontecer (ou seja, se ErrorLevel não for 0, o que ocorre quando a imagem NÃO foi localizada
{
Var = 0 ; Simplesmente redefinimos a Var como 0. Isso vai fazer com que o While-loop quebre e a execução continue
}
}
Send %A_Space%um exemplo ; Este send simboliza comandos posteriores (vai rodar quando a imagem do recaptcha sumir)
Tem outras formas de fazer isso também, mas creio que com essas você já consegue ter algumas ideias. Espero te ajudado, caso ainda tenha alguma dúvida sobre isso, basta postar abaixo.