# AutoHotkey

AutoHotkey é uma linguagem de script livre e de código aberto para Microsoft Windows, projetada principalmente para fornecer atalhos de teclado personalizados ou teclas de atalho, criação rápida de macros e automação de software, permitindo que usuários de qualquer nível de habilidade automatizem tarefas repetitivas em qualquer aplicativo do Windows. Ele pode facilmente estender ou modificar interfaces de usuário (por exemplo, substituindo os comandos padrão de tecla de controle do Windows por equivalentes do Emacs). O pacote de instalação inclui um arquivo de ajuda extenso; documentação online também está disponível.

## Recursos

Os scripts AutoHotkey podem ser usados para iniciar programas, abrir documentos e emular digitação ou cliques e movimentos do mouse. Eles também podem atribuir, recuperar e manipular variáveis, executar loops e manipular janelas, arquivos e pastas. Eles podem ser acionados por um atalho de teclado, como um script que abre um navegador de internet quando o usuário pressiona Ctrl+Alt+I no teclado. As teclas do teclado também podem ser remapeadas e desativadas, por exemplo, para que pressionar Ctrl+M produza um travessão na janela ativa. AutoHotkey também permite "hotstrings" que automaticamente substituem certos textos à medida que são digitados, como atribuir a string "dnv" para produzir o texto "de novo" ou o texto "%de" para produzir "porcentagem de". Scripts também podem ser configurados para rodar automaticamente no início do sistema, sem ação do teclado – por exemplo, para realizar gerenciamento de arquivos em intervalos definidos.
Tarefas mais complexas podem ser alcançadas com formulários de entrada de dados personalizados (janelas GUI), manipulação do registro do sistema ou uso da API do Windows chamando funções de DLLs. Os scripts podem ser compilados em arquivos executávels independentes que podem ser executados em outros computadores sem o AutoHotkey instalado. O código-fonte em C++ pode ser compilado com o Visual Studio Express.
AutoHotkey permite o acesso à memória por meio de ponteiros, como em C.
Alguns usos do AutoHotkey:
* Remapear o teclado, como de QWERTY para Dvorak e outros layouts alternativos de layout do teclado
* Usar atalhos para digitar nomes de arquivos e frases frequentemente usados
* Digitar pontuação não disponível no teclado, como aspas curvas (“…”)
* Digitar outros caracteres não presentes no teclado, como o símbolo × usado para medidas dimensionais (por exemplo, 10′×12′)
* Controlar o cursor do mouse com um teclado ou joystick
* Abrir programas, documentos e sites com simples pressionamentos de tecla
* Adicionar uma assinatura para e-mail, fóruns da internet, etc.
* Monitorar um sistema e fechar automaticamente programas indesejados
* Agendar lembretes automáticos, varreduras do sistema ou backup
* Automatizar tarefas repetitivas
* Preencher formulários automaticamente
* Prototipar aplicações antes de implementá-las em outras linguagens de programação mais demoradas

## Histórico

A primeira versão pública beta do AutoHotkey foi lançada em 10 de novembro de 2003, após a proposta de Chris Mallett de integrar suporte a tecla de atalho no AutoIt v2 não ter gerado resposta da comunidade AutoIt. Mallett desenvolveu um novo programa do zero, baseando a sintaxe no AutoIt v2 e usando o AutoIt v3 para alguns comandos e o compilador. Posteriormente, o AutoIt v3 mudou de GPL para código fechado devido a "outros projetos repetidamente pegando o código do AutoIt" e "se estabelecendo como concorrentes".
Em 2010, o AutoHotkey v1.1 (originalmente chamado AutoHotkey_L) tornou-se a plataforma para o desenvolvimento contínuo do AutoHotkey. Em 2012, ele se tornou o ramo oficial. Outra versão do programa é AutoHotkey.dll. Um fork conhecido do programa é AutoHotkey_H, que tem seu próprio subfórum no site principal.

### Versão 2

Em julho de 2021, foi lançada a primeira versão beta do AutoHotkey v2. O primeiro candidato a lançamento foi lançado em 20 de novembro de 2022, com o lançamento completo da v2.0.0 planejado para mais tarde no mesmo ano. Em 20 de dezembro de 2022, a versão 2.0.0 foi oficialmente lançada. Em 22 de janeiro de 2023, o AutoHotkey v2 tornou-se a versão principal oficial. A versão v1.1 tornou-se legada e não foram implementados novos recursos, mas ainda era suportada pelo site. Em 16 de março de 2024, foi lançada a última atualização do AutoHotkey v1.1, que agora atingiu o fim de seu ciclo de vida.

## Exemplos

O seguinte script procura por uma palavra ou frase específica usando o Google. Após o usuário copiar o texto de qualquer aplicativo para a área de transferência, pressionar a tecla configurável Win+G abre o navegador da web padrão do usuário e realiza a pesquisa.
O script a seguir define uma hotstring que permite ao usuário digitar att em qualquer programa e, ao seguir com um caractere final, substitui automaticamente por "atenciosamente":

## Recursos contribuídos pelos usuários

Extensões, interops e bibliotecas de script em linha do AutoHotKey estão disponíveis para uso com e de outras linguagens de programação, incluindo:
* VB/C# (.NET)
* Lua
* Lisp
* ECL
* Código de máquina embutido
* VBScript/JScript (Windows Scripting Host)
Outros plugins principais permitem suporte para:
* Programação orientada a aspectos
** Ganchos de função
* Wrappers COM
* Interação com console
* Geração de código dinâmico
* HIDs
* Automação do Internet Explorer
* Criação de GUI
* Programação sintética
* Web services
* Ganchos de eventos do Windows

## Malware

Quando o AutoHotkey é usado para criar software autônomo para distribuição, esse software deve incluir a parte do próprio AutoHotkey que entende e executa scripts do AutoHotkey, pois é uma linguagem interpretada. Inevitavelmente, alguns malware foram escritos usando AutoHotkey. Quando produtos anti-malware tentam identificar itens de malware que foram programados usando AutoHotkey, às vezes identificam erroneamente o AutoHotkey como o responsável em vez do próprio malware.$^[$

## Veja também

* AutoIt (para Windows)
* AutoKey (para Linux)
* Automator (para Macintosh)
* Bookmarklet (para navegadores web)
* iMacros (para Firefox, Chrome e Internet Explorer)
* Keyboard Maestro (para Macintosh)
* KiXtart (para Windows)
* Macro Express (para Windows)
* Winbatch (para Windows)