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.
Há alguns jeitos comuns de se criar um arquivo de script:
.ahk
. Em alguns sistemas você pode precisar envolver o nome em aspas para garantir que o editor não adicione outra extensão (como .txt).
Certifique-se de salvar o arquivo como UTF-8 com BOM se ele conterá caracteres que não sejam ASCII. Para detalhes, veja o FAQ.
.ahk
se ela estiver visível).Veja Linguagem de Confecção de Scripts para detalhes de como escrever 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.
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).
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):
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.
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. }
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 de | Expressão do Título | Example |
---|---|---|
.ahk file | A_ScriptFullPath " - AutoHotkey v" A_AhkVersion | E:\Meu Script.ahk - AutoHotkey v1.1.33.09 |
Recurso principal (script compilado) | A_ScriptFullPath | E:\Meu Script.exe |
Qualquer outra fonte | A_ScriptFullPath " - " A_LineFile | E:\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 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:
ID | Spec | Usage |
---|---|---|
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.
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.
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.
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:
/A32
ou /ANSI
: ANSI 32 bits/U64
ou /x64
: Unicode 64 bits (só válida em sistemas de 64 bits)./U32
: Unicode 32 bits.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.
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:
ComObjActive("Word.Application")
vai falhar porque o Microsoft Word não está marcado para acesso com IU.#InstallMouseHook
) pode impedir o funcionamento de todas as hotkeys de mouse quando o mouse estiver apontando para uma janela pertencente a um script com UIA, mesmo hotkeys implementadas pelo próprio script UIA. Uma solução de contorno é certificar-se que scripts UIA sejam carregados por último.Para mais detalhes, veja Habilitar interação com programas administrativos no fórum arquivado.