Como economizar tempo automatizando tarefas tediosas com o AutoHotkey
Você já precisou executar a mesma tarefa insensata várias vezes no seu PC? Em vez de perder horas clicando nos botões e pressionando as teclas, esse é o momento perfeito para usar suas habilidades no AutoHotkey para fazer o seu PC fazer o trabalho para você.
Nota: Este exemplo em particular é um exemplo real que eu usei hoje cedo para economizar uma pequena quantidade de tempo, mas estas são técnicas que eu usei muitas vezes ao longo dos anos para literalmente salvar a mim mesmo os dias que valem a pena..
O cenário
Eu estava tentando passar e limpar um monte de mensagens de transmissão incorretas em nossa conta de boletim informativo por e-mail, quando percebi que sua interface exigia que eu clicasse manualmente no botão Excluir e confirmasse em cada mensagem - estamos falando de 300 mensagens incorretas que precisavam ser excluídas. Para piorar a situação, a interface é extremamente lenta, o que significa que eu teria gasto uns bons 30-40 minutos apenas clicando e fazendo o meu túnel do carpo pior.
Em vez de fazer isso, criei um novo script AutoHotkey e rapidamente escrevi um script para fazer o trabalho para mim.
O primeiro passo foi identificar exatamente quais cliques e teclas eu precisava automatizar - obviamente, o primeiro passo é clicar no botão X, que traz a caixa de diálogo de confirmação do Ajax:
Felizmente, o botão Excluir é automaticamente destacado, então você pode simplesmente pressionar a tecla Espaço para confirmar. Depois que o registro é excluído, tudo é exibido como se a linha nunca estivesse lá. Sabendo disso, vamos seguir em frente e criar um script que automatize o clique no botão X, aguarde 3 segundos pela caixa de diálogo de confirmação, pressione a barra de espaço e espere mais 3 segundos para que a linha desapareça.
Criando o Script
A primeira coisa que queremos fazer é criar um loop que repita as mesmas ações várias vezes. Nesse caso, estimamos que precisaremos repetir isso 300 vezes, então usaremos o Loop sintaxe como esta:
Loop 300
Agora precisamos automatizar a ação de clique, o que é fácil no AutoHotkey - basta digitar clique. Você pode usar uma sintaxe de clique mais avançada, se quiser, escolhendo exatamente onde deseja clicar na tela ou escolhendo o clique do botão. Para os nossos propósitos, apenas usaremos o padrão, o que nos deixa com isto:
Loop 300
clique
Agora nosso script vai clicar 300 vezes seguidas, mas infelizmente temos que lidar com esse diálogo de confirmação, então agora vamos usar a função Send para enviar o pressionamento de tecla da barra de espaço para a janela ativa.
Loop 300
clique
Enviar Space
Se você olhar a documentação, verá toda a sintaxe das teclas especiais - as teclas regulares podem ser inseridas normalmente - por exemplo, se você quiser digitar teste e depois terminá-lo com um espaço, você usaria isso:
Enviar, testar Space
Então agora temos um script que clica no botão e, em seguida, atinge a barra de espaço, o que seria bom, exceto a interface é lenta, por isso precisamos inserir uma pequena pausa entre cada execução do clique e enviar funções. Para conseguir isso, vamos usar a função Sleep, que leva apenas um argumento - o atraso em milissegundos.
Loop 300
dormir 3000
clique
dormir 3000
Enviar Space
Agora temos um script que irá apagar os itens com sucesso, esperando 3 segundos antes de começar, para que você possa mover o cursor do mouse sobre o primeiro X, clicar no botão, esperar 3 segundos, apertar a barra de espaço e esperar 3 segundos antes de passar pelo próximo conjunto. Você poderia usar este script simples agora mesmo se quisesse, mas e se você quiser parar o script?
O que faremos é usar a função GetKeyState para verificar se você atingiu uma determinada chave - para testes, usaremos a tecla F8 e adicionaremos o seguinte no meio do loop. Isso detectará se a tecla F8 foi pressionada e, em seguida, usará a quebra para sair do loop.
GetKeyState, estado, F8
se estado = D
pausa
O script final
Aqui está o roteiro final, que provavelmente não vai ajudar muito, já que é específico do meu cenário, mas você pode usá-lo para criar seus próprios scripts simplesmente modificando os cliques e o envio de pressionamentos de tecla..
Loop 300
GetKeyState, estado, F8
se estado = D
pausa
dormir 3000
clique
dormir 3000
Enviar Space
Retorna
Para ilustrar como isso funciona na prática, aqui está um vídeo rápido que mostra isso em ação:
Nesse cenário específico, levei cerca de 3 minutos para juntar um tempo de script de trabalho salvo: 27 minutos. Apenas tempo suficiente para eu gravar o vídeo e escrever este artigo!