Usando o Programa

o AutoHotkey não faz nada por si só; ele precisa de um script para dizer-lhe o que fazer. Um script é simplesmente um arquivo de texto plano, com a extensão .ahk no nome do arquivo, contendo instruções para o programa, como um arquivo de configuração, mas muito mais poderoso. Um script pode fazer algo pequeno como executar uma ação simples e depois finalizar, mas a maioria dos scripts define um certo número de teclas de atalho (hotkeys, daqui para frente), com cada uma delas seguida de uma ou mais ações para executar quando a hotkey é pressionada.

#z::Run https://www.autohotkey.com  ; Win+Z

^!n::  ; Ctrl+Alt+N
if WinExist("Sem título - Notepad")
    WinActivate
else
    Run Notepad
return

Dica: se seu navegador suporta, você pode fazer o download de qualquer bloco de código (como o acima) como um arquivo de script clicando-se no botão que aparece no canto superior direito do retângulo quando você passa o cursor do mouse sobre.

Sumário

Criar um script

Há alguns jeitos comuns de se criar um arquivo de script:

Veja Linguagem de Confecção de Scripts para detalhes de como escrever um script.

Editar um script

Para abrir um script para edição, clique com o botão direito no arquivo e selecione Edit Script. Se o script já estiver em execução, você pode usar o comando Edit ou clique com o botão direito em seu ícone da bandeja e selecionar Edit This Script. Por padrão isso abrirá o Bloco de Notas, mas você pode mudar o editor de texto inserindo mudanças no registro como mostrado aqui. Evidentemente, você sempre pode abrir seu editor de texto primeiro e aí abrir o script como você faria com qualquer outro arquivo de texto.

Depois de editar um script, você deve carregar ou recarregar o script para que as mudanças tenham efeito. Um script em execução normalmente pode ser recarregado por meio do menu da bandeja.

Executar um script

Com o AutoHotkey instalado, há várias formas de executar um script:

A maioria dos scripts tem efeito somente enquanto estiverem em execução. Use o menu da bandejaou o comando ExitApp para finalizar um script. Scripts também são forçados a fechar quando o Windows é desligado. Para configurar um script para iniciar automaticamente depois de o usuário fazer login, o jeito mais fácil é colocar um atalho para o arquivo do script na pasta Inicializar.

Scripts também podem ser compilados; isto é, combinados com um arquivo binário do AutoHotkey para formar um arquivo executável independente (.exe).

Ícone da bandeja

Por padrão, cada script adiciona seu próprio ícone à área de notificação da barra de tarefas (comumente chamada de “bandeja”).

O ícone da bandeja normalmente é este (mas a cor e as letras mudam conforme o script é pausado ou suspenso): H

Clique com o botão direito no ícone da bandeja para exibir o menu, que tem as opções seguintes por padrão:

Por padrão, clicar com o botão direito no ícone da bandeja mostra a janela principal do script.

O comando Menu pode ser usado para personalizar o ícone da bandeja e o menu relacionado.

A diretiva #NoTrayIcon pode ser usada para ocultar o ícone da bandeja.

Janela principal

A janela principal do script é normalmente oculta, mas pode ser exibida por meio do ícone da bandeja ou um dos comandos listados abaixo para obter-se acesso a informações úteis para depurar o script. itens sob o menu View controlam o que a janela principal exibe:

Problema conhecido: atalhos de teclado para itens de menu não funcionam enquanto o script estiver exibindo uma caixa de mensagem ou outro diálogo.

A variável nativa A_ScriptHwnd contém o ID único (HWND) da janela principal do script.

Fechar esta janela com WinClose (mesmo a partir de outro script) causa que o script seja finalizado, mas a maioria dos outros métodos apenas ocultam a janela e deixam o script rodando.

Minimizar a janela principal faz com que ela seja automaticamente oculta. Isso é feito para prevenir que quaisquer janelas criadas pelo script (como janelas de GUI ou certas janelas de diálogo) sejam automaticamente minimizadas, mas também tem o efeito de ocultar o botão da janela principal da barra de tarefas. Para, em vez disso, fazer com que a janela seja minimizada normalmente, use OnMessage para sobrescrever a forma padrão de manipulação de janelas. Por exemplo:

; Isto impede a janela principal de ser oculta ou minimizar:
OnMessage(0x0112, Func("PreventAutoMinimize")) ; WM_SYSCOMMAND = 0x0112
OnMessage(0x0005, Func("PreventAutoMinimize")) ; WM_SIZE = 0x0005
; Isto impede janelas de GUIs (mas não janelas de diálogo) de automaticamente minimizarem:
OnMessage(0x0018, Func("PreventAutoMinimize"))

PreventAutoMinimize(wParam, lParam, uMsg, hwnd) {
    if (uMsg = 0x0112 && wParam = 0xF020 && hwnd = A_ScriptHwnd) { ; SC_MINIMIZE = 0xF020
        WinMinimize
        return 0 ; Impede a janela principal de ser ocultada.
    }
    if (uMsg = 0x0005 && wParam = 1 && hwnd = A_ScriptHwnd) ; SIZE_MINIMIZED = 1
        return 0 ; Impede a janela principal de ser ocultada.
    if (uMsg = 0x0018 && lParam = 1) ; SW_PARENTCLOSING = 1
        return 0 ; Impede a minimização de uma janela criada pelo script.
}

Main Window Title

O título da janela principal do script é usado pelos mecanismos #SingleInstance e Reload para identificar outras instâncias do mesmo script. Alterar o título impede que o script seja identificado como tal. O título padrão depende de como o script foi carregado:

Carregado a partir deExpressão do TítuloExample
.ahk fileA_ScriptFullPath " - AutoHotkey v" A_AhkVersionE:\Meu Script.ahk - AutoHotkey v1.1.33.09
Recurso principal (script compilado)A_ScriptFullPathE:\Meu Script.exe
Qualquer outra fonteA_ScriptFullPath " - " A_LineFileE:\Meu AutoHotkey.exe - *FERRAMENTA-NATIVA.AHK

O código a seguir ilustra como o título principal pod ser determinado pelo próprio script (mas o título verdadeiro pode ser obtido com o comando WinGetTitle:

title := A_ScriptFullPath
if !A_IsCompiled
    title .= " - AutoHotkey v" A_AhkVersion
; Para o resultado correto, este precisa ser determinado pelo recurso que estiver em execução,
; não um #include (a não ser que o #include tenha sido mesclado ao script pelo Ahk2Exe):
else if SubStr(A_LineFile, 1, 1) = "*" && A_LineFile != "*#1"
    title .= " - " A_LineFile

Scripts Incorporados [v1.1.34+]

Scripts may be embedded into a standard AutoHotkey .exe file by adding them as Win32 (RCDATA) resources using the Ahk2Exe compiler. To add additional scripts, see the AddResource compiler directive.

Um script incorporado pode ser especificado na linha de comando ou com #Include inserindo-se um asterisco (*) seguido do nome do recurso. Para o ID de um número inteiro, o nome do recurso deve ser uma cerquilha (#) seguida de um número decimal.

O problema pode automaticamente carregar o código do script a partir dos recursos abaixo, se estiverem presentes no arquivo:

IDSpecUsage
1*#1 Esse é o modo pelo qual um script compilado é criado a partir de um arquivo .exe. Esse script é executado automaticamente e a maioria das opções da linha de comando são passadas ao script em vez de serem interpretadas pelo programa. Scripts externos e scripts alternativos incorporados podem ser executados usando-se o switch /script.
2*#2 Se presente, esse script é automaticamente “incluído” antes de qualquer script que o programa carrega, e antes de qualquer arquivo especificado com /include.

Quando a fonte do script principal é um recurso incorporado, o programa age em “modo de script compilado”, com a exceção de que A_AhkPath sempre contém o caminho do arquivo executável atual (o mesmo que A_ScriptFullPath). Para recursos além de *#1, o especificador do recurso é incluído no título da janela principal para suportar #SingleInstance e Reload.

Quando referenciado por código que veio de um recurso incorporado, a variável A_LineFile contém um asterisco (*) seguido do nome do recurso.

Uso da Linha de Comando

Veja Passando Parâmetros da Linha de Comando para um Script para referência sobre o uso da linha de comando, inclusive uma lista de switches que afetam o comportamento do programa.

Portabilidade do AutoHotkey.exe

O arquivo AutoHotkey.exe é tudo que precisa para executar qualquer script .ahk.

[AHK_L 51+]: renomear AutoHotkey também faz mudar qual script o executável roda por padrão, o que pode ser uma alternativa à compilação do script para usar num computador sem o AutoHotkey instalado. Por exemplo, MeuScript.exe automaticamente executa MeuScript.ahk se um nome de arquivo não for fornecido, mas também é capaz de rodar outros scripts.

Opções do instalador

Para instalar silenciosamente o AutoHotkey no diretório padrão (o qual é o mesmo diretório exibido pelo modo não silencioso), passe o parâmetro /S ao instalador. Por exemplo:

AutoHotkey_1.1.34.03_setup.exe /S

Um diretório que não seja o padrão pode ser especificado pelo parâmetro /D (na ausência de /S, essa opção muda o diretório padrão exibido pelo instalador). Por exemplo:

AutoHotkey_1.1.34.03_setup.exe /S /D=C:\Program Files\AutoHotkey

Versão: Se o AutoHotkey foi previamente instalado, o instalador automaticamente detecta que versão do AutoHotkey.exe deverá ser definida como a padrão. Do contrário, a versão padrão é a Unicode 32 bits ou Unicode 64 bits, dependendo de o sistema operacional ser ou não 64 bits. Para ignorar qual versão do executável AutoHotkey.exe é definida como a padrão, passe um dos switches a seguir:

POR EXEMPLO, o comando a seguir instala silenciosamente e define a versão ANSI 32 bits como a padrão.

AutoHotkey_1.1.34.03_setup.exe /S /A32

Desinstalação: Para desintalar silenciosamente o AutoHotkey, passe o parâmetro /Uninstall ao Installer.ahk. Por exemplo:

"C:\Program Files\AutoHotkey\AutoHotkey.exe" "C:\Program Files\AutoHotkey\Installer.ahk" /Uninstall

Para versos do AutoHotkey anteriores à 1.1.08.00, use uninst.exe /S. Por exemplo:

"C:\Program Files\AutoHotkey\uninst.exe" /S

Observação:o script Installer.ahk deve ser executado como administrador para funcionar corretamente.

Extract [v1.1.09.04+]: A link is present in the bottom-right corner of the installer GUI to extract files without installing, and the /E switch can be used to invoke it from the command line. Por exemplo:

AutoHotkey_1.1.34.03_setup.exe /D=F:\AutoHotkey /E

Reiniciar scripts [v1.1.19.02+]: No modo de instalação/desinstalação silenciosa, os scripts que estiverem em execução são fechados automaticamente, quando necessário. Passe o switch /R para automaticamente recarregar esses scripts usando qualquer que seja o EXE que os estava executando, sem argumentos da linha de comando. A instalação vai tentar executar os scripts via Explorer, então eles não serão executados como administrador se o UAC estiver ativo.

Botões da barra de tarefas [v1.1.08+]: No Windows 7 e posteriores, os botões da barra de tarefas para múltiplos scripts são automaticamente agrupados ou combinados em um único botão, por padrão. A opção Botões separados na barra de tarefas desabilita isso registrando cada executável do AutoHotkey como um aplicativo hospedeiro (IsHostApp).

[v1.1.24.02+]: para instalações via linha de comando, especifique as opções /IsHostApp ou /IsHostApp=1 para habilitar a opção e /IsHostApp=0 para desabilitá-la.

Executar com acesso de IU [v1.1.24.02+]

A interface gráfica (GUI) do instalador tem a opção “Add 'Run with UI Access' to context menus”. Essa opção de menu contextual provê um contorno para problemas comuns relacionados ao UAC ao permitir que o script automatize programas administrativos - sem que o script esteja executando como administrador. Para conseguir isso, o instalador faz o seguinte:

Se quaisquer desses arquivos UIA estiverem presentes antes da instalação, o instalador irá automaticamente atualizá-los mesmo se a opção UI Access não estiver marcada.

Para instalações na linha de comando, especifique /uiAccess ou /uiAccess=1 para habilitar a opção e /uiAccess=0 para desabilitá-la. Por padrão, o instalador habilitará a opção se o UAC estiver habilitado e a opção UI Access do menu contexto estava presente antes da instalação.

Scripts que precisam executar outros scripts com acesso à IU podem simplesmente executar (Run) o arquivo UIA.exe apropriado com os parâmetros da linha de comando normais.

Limitações conhecidas:

Para mais detalhes, veja Habilitar interação com programas administrativos no fórum arquivado.