Como escrever um script AutoHotkey

AutoHotkey é um software fantástico, mas complicado. A intenção inicial era religar teclas de atalho personalizadas para ações diferentes, mas agora é um pacote completo de automação do Windows.

AHK não é particularmente difícil de aprender para novos usuários, já que o conceito geral é bastante simples, mas é uma linguagem de programação completa de Turing. Você aprenderá a sintaxe com muito mais facilidade se tiver experiência em programação ou estiver familiarizado com os conceitos.

Instalando e usando AutoHotkey

O processo de instalação do AutoHotkey é direto. Faça o download do instalador do site oficial e executá-lo. Escolha “Instalação Expressa”. Depois de instalar o software, você pode clicar com o botão direito em qualquer lugar e selecionar Novo> AutoHotkey Script para fazer um novo script.

Os scripts AHK são arquivos de texto com extensão .ahk. Se você clicar com o botão direito neles, terá algumas opções:

“Run Script” carregará seu script com o tempo de execução AHK.
“Compile Script” irá agrupá-lo com um executável AHK para criar um arquivo EXE que você possa executar.
“Editar Script” abrirá seu script em seu editor de texto padrão. Você pode usar o Bloco de notas para escrever scripts AHK, mas recomendamos o uso SciTE4AutoHotkey, um editor para AHK que suporta realce de sintaxe e depuração.

Enquanto um script está sendo executado – seja um EXE ou não – você o encontrará em execução em segundo plano na área de notificação do Windows, também conhecida como bandeja do sistema. Procure o ícone verde com um “H” nele.

Para sair, pausar, recarregar ou editar um script, clique com o botão direito no ícone de notificação e selecione uma opção apropriada. Os scripts continuarão sendo executados em segundo plano até que você saia deles. Eles também desaparecerão quando você sair do Windows ou reiniciar o PC, é claro.

  Como forçar o Outlook a baixar imagens (se você tiver certeza de que é uma boa ideia)

Como funciona o AutoHotkey?

Basicamente, o AHK faz uma coisa – vincula ações a teclas de atalho. Existem muitas ações diferentes, combinações de teclas de atalho e estruturas de controle, mas todos os scripts funcionarão no mesmo princípio. Este é um script AHK básico que inicia o Google Chrome sempre que você pressiona Windows + C:

#c::
Run Chrome
return

A primeira linha define uma tecla de atalho. O sinal de sustenido (#) é a abreviatura da tecla Windows ec é a tecla C do teclado. Depois disso, há dois pontos duplos (: 🙂 para indicar o início de um bloco de ação.

A próxima linha é uma ação. Nesse caso, a ação inicia um aplicativo com o comando Executar. O bloco é finalizado com um retorno no final. Você pode ter qualquer número de ações antes do retorno. Todos eles vão disparar sequencialmente.

Assim, você definiu um mapeamento simples de tecla-para-ação. Você pode colocar quantos deles quiser em um arquivo .ahk e configurá-lo para ser executado em segundo plano, sempre procurando por teclas de atalho para remapear.

Teclas de atalho e modificadores

Você pode encontrar uma lista completa dos modificadores de AHK na documentação oficial, mas vamos nos concentrar nos recursos mais úteis (e interessantes).

Todas as teclas modificadoras têm atalhos de um único caractere. Por exemplo, # ! ^ + são Windows, Alt, Control e Shift, respectivamente. Você também pode diferenciar entre Alt esquerdo e direito, Control e Shift com os modificadores, o que abre muito espaço para teclas de atalho extras. Por exemplo, + é o Shift certo. Dê uma olhada no lista de chaves para tudo que você pode consultar. (Spoiler: você pode fazer referência a quase todas as teclas. Você pode até mesmo fazer referência a outros dispositivos de entrada que não sejam do teclado com um pequena extensão)

Você pode combinar quantas teclas desejar em uma tecla de atalho, mas logo ficará sem combinações de teclas para lembrar. É aqui que entram os modificadores, que permitem que você faça coisas mais malucas. Vamos analisar um exemplo dos documentos AHK:

  Como enviar mensagens para um grupo no Mail no iPhone ou iPad

A #IfWinActive verde é chamada de diretiva e aplica contexto adicional às teclas de atalho fisicamente abaixo dela no script. Qualquer tecla de atalho após ela será acionada apenas se a condição for verdadeira, e você pode agrupar várias teclas de atalho em uma diretiva. Esta diretiva não mudará até que você acerte outra diretiva, mas você pode redefini-la com um #If em branco (e se isso parecer um hack, bem-vindo ao AHK).

A diretiva aqui é verificar se uma janela específica está aberta, definida pelo ahk_class Notepad. Quando AHK recebe a entrada “Win ​​+ C,” ele irá disparar a ação sob o primeiro #IfWinActive somente se a diretiva retornar true, e então verificar o segundo caso não retorne. AHK tem muitas diretivas, e você pode encontrar todas elas em os docs.

AutoHotkey também tem hotstrings, que funcionam como teclas de atalho, exceto para substituir uma string inteira de texto. Isso é semelhante a como funciona a correção automática – na verdade, há um script de autocorreção para AHK – mas suporta qualquer ação AHK.

O hotstring corresponderá à string apenas se for digitada exatamente. Ele removerá automaticamente o texto correspondente para substituir o hotstring também, embora esse comportamento possa ser ajustado.

Ações

Uma ação em AHK é qualquer coisa que tenha um efeito externo no sistema operacional. AHK tem muitas ações. Não podemos explicar todos eles, então escolheremos alguns úteis.

Enviando entrada, seja texto ou vários pressionamentos de botão.
Movendo o mouse. Na verdade, o AHK às vezes é erroneamente sinalizado como software de trapaça para videogames, já que as pessoas criaram aimbots totalmente funcionais com ele.
Clicando com o mouse, com posicionamento em relação à janela atual.
Exibindo menus de diálogo, completo com formulários e campos de entrada.
Movendo as janelas, ajustando o tamanho e abrindo e fechando.
Ouvindo música.
Escrevendo no Registro do Windows. Sim com certeza.
Modificando o conteúdo da área de transferência.
Ler e escrever arquivos. Você pode percorrer arquivos e executar ações em cada linha. O AHK pode até mesmo gravar em arquivos .ahk e ajustar seu próprio código.

  Como trocar valores entre células, linhas ou colunas no MS Excel

A maioria dessas ações também terá comandos orientados a informações associados a elas. Por exemplo, você pode escrever na área de transferência, mas também pode obter o conteúdo da área de transferência para armazenar em uma variável e executar funções quando a área de transferência for alterada.

Amarrando tudo com estruturas de controle

AHK não seria o que é sem todas as estruturas de controle que o tornam Turing-complete.

Além das diretivas #If, você também tem acesso a Se dentro de blocos de ação. AHK tem Por rotações, chaveta blocos, Experimentar e declarações Catch e muitos outros. Você pode acessar dados externos de dentro do bloco de ação e armazená-los em variáveis ou objetos para usar mais tarde. Você pode definir funções personalizadas e rótulos. Na verdade, qualquer coisa que você possa fazer facilmente em outra linguagem de programação, você provavelmente pode fazer em AHK com um pouco de dor de cabeça e dar uma olhada na documentação.

Por exemplo, imagine que você tem uma tarefa tediosa e repetitiva que exige que você clique em vários botões em uma linha e aguarde a resposta de um servidor antes de fazer tudo de novo ad infinitum. Você pode usar AHK para automatizar isso. Você gostaria de definir alguns loops para mover o mouse para locais específicos, clicar e, em seguida, mover para o próximo local e clicar novamente. Adicione algumas declarações de espera para impedir que ele se quebre. Você pode até tentar leia a cor dos pixels na tela para determinar o que está acontecendo.

Uma coisa é certa – seu script provavelmente não será bonito. Mas também não é AutoHotkey, e tudo bem.