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 podem ser incorporados a um executável padrão do AutoHotkey (.exe) adicionando-se-os como recursos Win32 (RCDATA). 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:

AutoHotkey110800_Install.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:

AutoHotkey110800_Install.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.

AutoHotkey110800_Install.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.

Extrair: Versões posteriores do instalador incluem um link no canto inferior direito para extrair os arquivos de instalação sem instalar. Se essa função estiver presente, o switch /E pode ser usado para invocá-la a partir da linha de comando. Por exemplo:

AutoHotkey110903_Install.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.