Como escrever um script AutoHotkey

AutoHotkey é um software fantástico, mas complicado. A intenção inicial era religar teclas de atalho personalizadas a 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. Baixe o instalador do site oficial e execute-o. Escolha “Instalação Expressa”. Depois de instalar o software, você pode clicar com o botão direito em qualquer lugar e selecionar Novo> Script AutoHotkey para fazer um novo script.

Os scripts AHK são arquivos de texto com um .ahk extensão. Se clicar com o botão direito neles, você 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 de SciTE4AutoHotkey, um editor para AHK que oferece suporte a 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 a ser 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 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 :: Execute o retorno do Chrome

A primeira linha define uma tecla de atalho. O sinal de sustenido (#) é a abreviação da tecla Windows e c é 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 Corre comando. O bloco é finalizado com um Retorna no fim. Você pode ter qualquer número de ações antes do Retorna. Todos eles serão disparados sequencialmente.

Assim, você definiu um mapeamento simples de chave-para-ação. Você pode colocar quantos quiser em um .ahk arquivo e configurá-lo para rodar em segundo plano, sempre procurando por hotkeys para remapear.

Teclas de atalho e modificadores

Você pode encontrar uma lista completa dos modificadores da 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 o < e > modificadores, o que abre muito espaço para teclas de atalho extras. Por exemplo, + é Shift certo. Dê uma olhada na lista principal para tudo o 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 de teclado com uma 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. Vejamos um exemplo dos documentos AHK:

O verde #IfWinActive é chamado dediretriz, e aplica contexto adicional às teclas de atalho fisicamente sob ele 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ê atinja outra diretiva, mas você pode redefini-la com um espaço em branco #Se (e se isso parece um hack, bem-vindo ao AHK).

A diretiva aqui é verificar se uma janela específica está aberta, definida por ahk_class Notepad. Quando AHK recebe a entrada "Win + C", ele irá disparar a ação sob o primeiro #IfWinActive apenas se a diretiva retornou verdadeira e, em seguida, verifique a segunda se não retornou. AHK tem muitas diretivas e você pode encontrar todas elas nos documentos.

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 autocorreção - na verdade, há um script de autocorreção para AHK - mas suporta qualquer ação AHK.

O hotstring corresponderá à string apenas se for digitado 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 botões pressionados.
  • 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.
  • Clicar com o mouse, com posicionamento em relação à janela atual.
  • Exibindo menus de diálogo, completos 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, realmente.
  • Modificando o conteúdo da área de transferência.
  • Leitura e gravação de arquivos. Você pode percorrer arquivos e executar ações em cada linha. AHK pode até escrever para .ahk arquivos e ajustar seu próprio código.

A maioria dessas ações também terá comandos orientados a informações associados a elas. Por exemplo, você pode gravar 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-completo.

Em adição ao #Se diretivas, você também tem acesso a Se dentro de blocos de ação. AHK tem Para loops, blocos de chaves, Tentar e Pega declarações, e muitos outros. Você pode acessar dados externos de dentro do bloco de ação e armazená-los em variáveis ​​ou objetos para uso posterior. Você pode definir funções e rótulos personalizados. 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 entediante e repetitiva que exige que você clique em vários botões em sequência e espere a resposta de um servidor antes de fazer tudo de novo ad infinitum. Você pode usar AHK para automatizar isso. Você deseja 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 ler a cor dos pixels na tela para determinar o que está acontecendo.

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


$config[zx-auto] not found$config[zx-overlay] not found