# Usando o Programa

O AutoHotkey não faz nada por conta própria; ele precisa que um script diga o que fazer. Um script é simplesmente um arquivo de texto com a extensão de arquivo `.ahk` contendo instruções para o programa, parecido com um arquivo de configuração, mas muito mais poderoso. Um script pode ser pequeno a ponto de realizar uma única ação e ser encerrado, mas a maioria dos scripts definem um número de hotkeys, com cada hotkey sendo seguida por uma ou mais ações a serem executadas quando a hotkey for pressionada.

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

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

Dica: Se o seu navegador suportar, você pode baixar qualquer bloco de código (como o mostrado acima) como um arquivo script clicando no botão que aparece na parte superior direita do bloco de código quando você passa o mouse sobre ele.

## Tabela de Conteúdos

- Criando um Script
- Editando um Script
- Executando um Script
- Ícone de Bandeja
- Janela Principal
- Forma de Uso da Linha de Comando
- Portabilidade do AutoHotkey.exe
- Opções do Instalador
  - Executar com UI Acess

## Criando um Script

Existem algumas formas comuns para se criar um arquivo script:

- No Bloco de Notas (ou um editor de texto de sua escolha), salve o arquivo com a extensão `.ahk`. Em alguns sistemas operacionais, talvez você precise envolver o nome em aspas para garantir que o editor não adicionará nenhuma outra extensão de arquivo (como .txt).

  Certifique-se de salvar o arquivo como UTF-8 with BOM se ele conter caracteres non-ASCII. Para detalhes, veja aFAQ.

- No Explorador, clique com o direito no espaço vazio dentro das pasta onde você quer salvar o script, então selecione New e AutoHotkey Script. Você pode então digitar um nome para o script (cuidado para não apagar a extensão `.ahk` se ela estiver visível).

Veja Linguagem de Script para detalhes sobre como escrever um script.

## Editando um Script

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

Depois de editar um script, você precisa executar ou recarregar o script para que as alterações entrem em efeito. Um script em execução normalmente pode ser recarregado através do menu de bandeja.

## Executando um Script

Com o AutoHotkey instalado, existem várias formas de excutar um script:

- Clique duas vezes em um arquivo script (ou atalho para um arquivo script) no Explorador.
- Chame o AutoHotkey.exe na linha de comando e passe o nome do arquivo script como um parâmetro de linha de comando.
- Depois de criar o script padrão, inicie o AutoHotkey através do atalho no menu Iniciar para executá-lo.
- Se o AutoHotkey estiver fixado na barra de tarefas ou no menu Iniciar no Windows 7 ou superior, scripts recentes ou fixados podem ser iniciados através da Jump List do programa.

A maioria dos scripts tem efeito apenas enquanto eles estão sendo executados. Use o menu de bandeja ou o comando ExitApp para encerrar um script. Scripts também são forçados a serem encerrados quando o Windows é encerrado. Para configurar um script para iniciar automaticamente após o usuário entrar, a maneira mais fácil é colocar um atalho para o arquivo script na pasta Startup.

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

## Ícone de Bandeja

Por padrão, cada script adiciona seu próprio ícone na área de notificações da barra de tarefa (também conhecida popularmente como bandeja)

O ícone de bandeja normalmente se parece com isso (mas a cor ou a letra é alterada quando o script está pausado ou suspenso):

Clique com o botão direito no ícone de bandeja para mostrar o menu de bandeja, qual possui as seguintes opções por padrão:

- Open - Abre a janela principal do script.
- Help - Abre o arquivo de ajuda offline do AutoHotkey.
- Window Spy - Mostra várias informações sobre uma janela.
- Reload This Script - Veja Recarregar.
- Edit This Script - Veja Editar.
- Suspend Hotkeys - Suspende ou cancela a suspensão de hotkeys.
- Pause Script - Pausa ou despausa o script.
- Exit - Encerra o script.

Por padrão, clicar duas vezes no ícone de bandeja mostra a janela principal do script.

O comando Menu pode ser usado para customizar o ícone de bandeja e o menu.

A diretiva #NoTrayIcon pode ser usada para esconder o ícone de bandeja.

## Janela Principal

A janela principal do script normalmente fica escondida, mas ela pode ser mostrada através do ícone de bandeja ou um dos comandos listados abaixo para receber acesso à informações úteis para a depuração do script. Itens sob o menu de controle View que a janela principal mostra:

- Lines most recently executed - Veja ListLines.
- Variables and their contents - Veja ListVars.
- Hotkeys and their methods - Veja ListHotkeys.
- Key history and script info - Veja KeyHistory.

Problema conhecido: Atalhos de teclado para itens de menu não funcionam enquanto o script estiver mostrando uma MsgBox ou outro diálogo.

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

O título desta janela é usado pelos mecanismos #SingleInstance e Recarregar para identificar outras instâncias do mesmo script. Alterar o título previne que o script seja identificado como tal. O título padrão da janela é equivalente a expressão `A_ScriptFullPath (A_IsCompiled ? "" : " - AutoHotkey v" A_AhkVersion)`.

Fechar esta janela com WinClose (mesmo a partir de outro script) faz com que o script seja encerrado, mas a maioria dos outros métodos apenas escondem a janela e deixam o script em execução.

## Forma de Uso da Linha de Comando

Veja Passando parâmetros de linha de comando para um script para saber como usar a linha de comando, incluindo uma lista de alternadores de linha de comando que afetam o comportamento do programa.

## Portabilidade do AutoHotkey.exe

O arquivo AutoHotkey.exe é tudo que é necessário para executar qualquer script .ahk

[AHK_L 51+]: Renomear o AutoHotkey.exe também altera qual script é executado por padrão, que será uma alternativa para compilar um script para usar em um 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 executar outros scripts.

## Opções do Instalador

Para instalar o AutoHotkey silenciosamente dentro do diretório padrão (que é o mesmo diretório mostrado pelo modo não-silencioso), passe o parâmetro /S para o instalador. Por exemplo:

    AutoHotkey110800_Install.exe /S

Talvez seja necessário especificar um diretório além do padrão através do parâmetro /D (na ausência de /S, isso altera o diretório padrão mostrado pelo instalador). ( Por exemplo:

    AutoHotkey110800_Install.exe /S /D=C:\Program Files\AutoHotkey

Versão: Se o AutoHotkey foi instalado anteriormente, o instalador detectará automaticamente qual versão do AutoHotkey.exe está definida como padrão. Caso contrário, o padraõ será Unicode 32-bit ou Unicode 64-bit dependendo se o sistema é 32 ou 64-bit. Para substituir qual versão do AutoHotkey está definida como padrão, passe um dos seguintes alternadores:

- `/A32` ou `/ANSI`: ANSI 32-bit.
- `/U64` ou `/x64`: Unicode 64-bit (only valid on 64-bit systems).
- `/U32`: Unicode 32-bit.

Por exemplo, o seguinte instala silenciosamente e define ANSI 32-bit como o padrão:

    AutoHotkey110800_Install.exe /S /A32

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

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

Para versões do AutoHotkey mais antigas que 1.1.08.00, use `uninst.exe /S`. Por exemplo:

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

OBS: O 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 arquivos de configuração sem instalar. Se essa função estiver presente, o alternador `/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 silencioso, scripts em execução são fechados automaticamente, caso seja necessário. Passe o alternador `/R` para reiniciar automaticamente estes scripts usando qualquer EXE que esteja em execução, sem fazer uso de argumentos de linha de comando. A configuração tentará iniciar os scripts através do Explorador, então eles não serão executados como administrador se UAC estiver habilitado.

Botões da barra de tarefas [v1.1.08+]: No Windows 7 ou superior, botões da barra de tarefa para múltiplos scripts são automaticamente agrupados juntos ou combinados em um único botão por padrão. A opção Separate taskbar buttons desabilita isso registrando cada executável do AutoHotkey como um host app (IsHostApp).

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

### Executar com UI Acess[v1.1.24.02+]

O GUI Instalador possui uma opção "Add 'Run with UI Acess' to context menus". Essa opção de menu de contexto oferece uma solução alternativa para os comuns UAC - problemas relacionados permitindo que o script automatize programas administrativos - sem que o script esteja sendo executado como administrador. Para alcançar isso, o instalador faz o seguinte:

- Copia AutoHotkeyA32.exe, AutoHotkeyU32.exe e (se presente) AutoHotkeyU64.exe paraAutoHotkey*_UIA.exe.
- Define o atributo uiAcess em cada manifesto embutido do arquivo.
- Cria um certificado digital auto-assinado chamado "AutoHotkey" e assina cada arquivo UIA.
- Registra a opção de menu de contexto para executar o arquivo exe apropriado.

Se qualquer um dos arquivos UIA forem apresentados antes da instalação, o instalador os atualizará automaticamente mesmo se a opção UI Acess estiver desabilitada.

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

Scripts que precisam executar outros scripts com UI Acess podem simplesmente Executar o arquivo UIA.exe apropriado com os parâmetros de linha de comando normais.

Limitações conhecidas:

- UIA só é efetivo se o arquivo estiver em uma localização de confiança, por exemplo, um sub-diretório do diretório Arquivos de Programas
- Arquivos UIA.exe criados em um computador não podem ser executados em outros computadores sem antes instalar o certificado digital que foi usado para assiná-los.
- Arquivos UIA.exe não podem ser iniciados através do CreateProcess devido a restrições de segurança. O ShellExecute pode ser utilizado como alternativa. Run tenta ambos.
- Arquivos UIA.exe não podem ser modificados, visto que isso invalidaria a assinatura digital do arquivo.
- Devido ao fato de programas UIA serem executados com diferentes "níveis de integridade" que outros programas, eles podem acessar apenas objetos registrados por outros programas UIA. Por exemplo, `ComObjActive("Word.Application")` falharia porque Word não está marcado para UI Acess.
- As janelas dos próprios scritps não podem ser automatizadas por programas/scripts non-UIA por motivos de segurança.
- Executar um script non-UIA que usa um mouse hook (mesmo um simples como `#InstallMouseHook`) pode previnir que todas as hotkeys de mouse funcionarem quando o mouse estiver apontando para uma janela pertencente á um script UIA, mesmo hotkeys implementadas pelo próprio script UIA. Uma solução alternativa é garantir que scripts UIA sejam carregados por último.

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