Domine o AutoHotkey: Automação de Windows para Iniciantes e Experts


Explorando o AutoHotkey: Uma Ferramenta de Automação Poderosa

O AutoHotkey (AHK) é um software notável, embora possa parecer complexo à primeira vista. Inicialmente concebido para personalizar atalhos de teclado, evoluiu para uma solução abrangente de automação para o sistema Windows.

Apesar de sua aparente complexidade, o AHK não é excessivamente difícil para iniciantes, pois seu conceito central é bastante intuitivo. No entanto, sendo uma linguagem de programação Turing completa, o domínio da sintaxe será facilitado para aqueles com experiência prévia em programação ou familiaridade com conceitos similares.

Instalação e Primeiros Passos com o AutoHotkey

A instalação do AutoHotkey é um processo simples. Basta baixar o instalador do site oficial e executá-lo. Durante a instalação, selecione a opção “Instalação Expressa”. Após a conclusão, você pode criar um novo script clicando com o botão direito em qualquer área e escolhendo “Novo > AutoHotkey Script”.

Os scripts do AHK são arquivos de texto com a extensão .ahk. Ao clicar com o botão direito em um desses arquivos, você terá várias opções:

  • “Run Script” carregará o script com o interpretador AHK.
  • “Compile Script” irá compilar o script em um executável (.exe) para facilitar a execução.
  • “Editar Script” abrirá o script no seu editor de texto padrão. Embora seja possível usar o Bloco de Notas, é recomendado o uso do SciTE4AutoHotkey, um editor dedicado ao AHK que oferece recursos como realce de sintaxe e depuração.

Enquanto um script estiver em execução, seja como um executável ou não, ele será encontrado em segundo plano na área de notificação do Windows, também conhecida como bandeja do sistema. O ícone é verde com um “H”.

Para sair, pausar, recarregar ou editar um script, clique com o botão direito no ícone da bandeja e escolha a opção desejada. Os scripts continuarão em execução até serem explicitamente encerrados. Naturalmente, eles serão fechados ao sair do Windows ou reiniciar o computador.

Entendendo o Funcionamento do AutoHotkey

Essencialmente, o AHK vincula ações a atalhos de teclado. Embora existam diversas ações, combinações de atalhos e estruturas de controle, todos os scripts operam com base no mesmo princípio. Aqui está um exemplo de um script AHK básico que abre o Google Chrome quando você pressiona as teclas Windows + C:

#c::
Run Chrome
return

A primeira linha define um atalho de teclado. O símbolo # representa a tecla Windows, e ‘c’ é a tecla C do teclado. Os dois pontos duplos (::) marcam o início de um bloco de ação.

A linha seguinte define a ação a ser executada. Neste caso, o comando ‘Run’ abre um aplicativo. O bloco é finalizado com a palavra-chave ‘return’. Você pode ter várias ações antes do ‘return’, que serão executadas sequencialmente.

Portanto, você criou um simples mapeamento de tecla para ação. Você pode inserir quantos desses mapeamentos desejar em um arquivo .ahk e executá-lo em segundo plano, monitorando constantemente os atalhos de teclado definidos.

Atalhos e Modificadores: Elevando a Automação

Uma lista completa dos modificadores do AHK pode ser encontrada na documentação oficial. Vamos nos concentrar nos recursos mais úteis e interessantes.

Cada tecla modificadora possui um atalho de caractere único. Por exemplo, #, !, ^ e + correspondem, respectivamente, às teclas Windows, Alt, Control e Shift. É possível distinguir entre as teclas Alt, Control e Shift esquerdas e direitas, utilizando modificadores, o que possibilita um grande leque de atalhos adicionais. Por exemplo, >+ é a tecla Shift direita. Veja a lista de teclas para explorar todas as opções. (Um detalhe: é possível referenciar quase todas as teclas e até mesmo outros dispositivos de entrada que não o teclado com uma pequena extensão).

Você pode combinar quantas teclas desejar em um atalho, mas é fácil ficar sem combinações para memorizar. É aí que entram os modificadores, que abrem espaço para automações mais criativas. Veja um exemplo da documentação do AHK:

A linha #IfWinActive é uma diretiva que aplica contexto adicional aos atalhos de teclado que vêm depois dela no script. Um atalho de teclado após ela só será acionado se a condição definida for verdadeira. Você pode agrupar vários atalhos de teclado em uma mesma diretiva. Essa diretiva permanece ativa até que outra seja encontrada, mas você pode redefini-la com um #If em branco.

A diretiva acima verifica se uma janela específica está aberta, neste caso, definida por ahk_class Notepad. Quando o AHK recebe a entrada “Win + C”, ele executará a ação definida sob o primeiro #IfWinActive somente se a diretiva retornar ‘true’, e então verificará o segundo caso. O AHK oferece muitas diretivas, que podem ser encontradas na documentação.

O AutoHotkey também tem hotstrings, que funcionam de forma similar aos atalhos, mas substituem uma string de texto inteira. O funcionamento é semelhante à autocorreção – inclusive há um script de autocorreção para o AHK – e suporta qualquer ação AHK.

O hotstring só será acionado se a string for digitada exatamente como definida. Ele removerá automaticamente o texto correspondente para inserir o hotstring, embora esse comportamento possa ser personalizado.

Explorando as Ações do AutoHotkey

Uma ação no AHK é qualquer operação que tenha um efeito externo no sistema operacional. O AHK oferece muitas ações. Vamos mencionar algumas das mais úteis:

A maioria dessas ações possui comandos relacionados à informação. Por exemplo, você pode escrever na área de transferência, mas também 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 modificada.

Unindo Tudo com Estruturas de Controle

O AHK não seria tão poderoso sem as estruturas de controle que o tornam Turing-completo.

Além das diretivas #If, você também tem acesso a comandos If dentro de blocos de ação. O AHK tem loops For, blocos de chave, comandos Try e Catch, entre outras opções. Você pode acessar dados externos dentro do bloco de ação e armazená-los em variáveis ou objetos para uso posterior. Você também pode definir funções personalizadas e rótulos. Essencialmente, qualquer coisa que você possa fazer facilmente em outra linguagem de programação, você provavelmente poderá fazer no AHK com um pouco de esforço e pesquisa na documentação.

Por exemplo, imagine que você tem uma tarefa repetitiva que exige que você clique em vários botões em sequência e aguarde a resposta de um servidor antes de recomeçar. Você pode usar o AHK para automatizar isso. Você definirá loops para mover o mouse para locais específicos, clicar, mover para o próximo local e clicar novamente, e usar comandos de espera para evitar que o script se quebre. Você pode até ler a cor dos pixels na tela para determinar o que está acontecendo.

Uma coisa é certa: seu script pode não ser visualmente bonito, mas está tudo bem, porque ele funcionará.