Lista de teclas (teclado, mouse e joystick)

Sumário

Mouse

Botões Gerais

Nome Descrição
LButton O botão esquerdo do mouse quando usado com o comando Send, mas é tratado como botão primário do mouse quando usado com hotkeys. Em outras palavras, se o usuário permutou os botões nas configurações do sistema, LButton:: é fisicamente ativada pelo clique do botão direito do mouse, mas Send {LButton} atua da mesma maneira de clicar fisicamente o botão esquerdo. Caso você queira sempre executar um clique lógico do botão esquerdo, use Click Left ou Send {Click Left}.
RButton O botão direito do mouse quando usado com o comando Send, mas é tratado como botão secundário do mouse quando usado com hotkeys. Em outras palavras, se o usuário permutou os botões nas configurações do sistema, RButton:: é fisicamente ativada pelo clique do botão esquerdo do mouse, mas Send {RButton} atua da mesma maneira de clicar fisicamente o botão direito. Caso você queira sempre executar um clique lógico do botão direito, use Click Right ou Send {Click Right}.
MButton Botão da roda ou botão intermediário do mouse

Botões Avançados

Nome Descrição
XButton1 O 4º botão do mouse. Tipicamente executa a mesma função de Browser_Back.
XButton2 O 5º botão do mouse. Tipicamente executa a mesma função de Browser_Forward.

Roda do Mouse

Nome Descrição
WheelDown Girar a roda do mouse para baixo (em direção a você).
WheelUp Girar a roda do mouse para cima (na direção afastando de você).
WheelLeft
WheelRight

[v1.0.48+]: Rolar para a esquerda ou para a direita.

Requer Windows Vista ou posterior. Estes botões podem ser usados como hotkeys com alguns (mas não todos) mouses que tenham uma segunda roda ou tenham suporte à inclinação da roda para qualquer dos lados. Em alguns casos, o software que acompanha o mouse deve ser usado em vez do AutoHotkey para controlar essa funcionalidade. Independentemente do mouse em particular, Send e Click podem ser usados para rolar horizontalmente em programas que suportam rolagem horizontal.

Teclado

Observação: Os nomes das teclas alfabéticas e numéricas são a própria letra ou dígito sozinho. Por exemplo: b é B e 5 é 5.

Apesar de qualquer caractere individual poder ser usado como nome de tecla, seu significado (código de leitura ou código virtual) depende do layout do teclado usado. Ademais, alguns caracteres especiais podem exigir escape ou que sejam envoltos em chaves, dependendo do contexto. [v1.1.27+]: As letras a-z ou A-Z podem ser usadas para se referir aos códigos virtuais correspondentes (normalmente vk41-vk5A) mesmo se eles não estiverem inclusos no layout em uso no teclado.

Teclas Gerais

Nome Descrição
CapsLock CapsLock (tecla caps lock)

Observação: O IME do Windows pode interferir com a detecção e funcionamento do CapsLock; vide CapsLock e IME para detalhes.

Space Space (barra de espaço)
Tab Tab (tecla de tabulação)
Enter Enter
Return Obsoleto: Use o sinônimo Enter em vez de Return para evitar ambiguidade.
Escape (ou Esc) Esc
Backspace (ou BS) Backspace

Teclas de Controle do Cursor

Nome Descrição
ScrollLock ScrollLock (tecla scroll lock). Enquanto Ctrl é mantida pressionada, ScrollLock produz o código da tecla CtrlBreak, mas pode ser diferenciado de Pause por meio do código de leitura.
Delete (ou Del) Del
Insert (ou Ins) Ins
Home Home
End End
PgUp PgUp (tecla page up)
PgDn PgDn (tecla page down)
Up (tecla seta para cima)
Down (tecla seta para baixo)
Left (tecla seta para a esquerda)
Right (tecla seta para a direita)

Teclas do Teclado Numérico

Devido ao comportamento do sistema, as teclas separadas por uma barra a seguir são identificadas de forma diferente a depender do estado da tecla NumLock, se LIGADA ou DESLIGADA. Se a tecla NumLock está DESLIGADA mas a tecla Shift está pressionada, o sistema temporariamente solta a Shift e age como se NumLock estivesse LIGADA.

Nome Descrição
Numpad0 / NumpadIns0 / Ins
Numpad1 / NumpadEnd1 / End
Numpad2 / NumpadDown2 /
Numpad3 / NumpadPgDn3 / PgDn
Numpad4 / NumpadLeft4 /
Numpad5 / NumpadClear5 / tipicamente não faz nada
Numpad6 / NumpadRight6 /
Numpad7 / NumpadHome7 / Home
Numpad8 / NumpadUp8 /
Numpad9 / NumpadPgUp9 / PgUp
NumpadDot / NumpadDel. / Del (Observação: nos teclados ABNT/ABNT2, costuma haver uma vírgula na tecla Del, enquanto a tecla “ponto” não tem correspondente com NumLock desligada. Teste seu script para determinar qual das duas teclas é a que funciona.)
NumLock NumLock (tecla number lock). Enquanto Ctrl está pressionada, NumLock produz o código da tecla Pause, então use ^Pause nas hotkeys em vez de ^NumLock.
NumpadDiv / (divisão)
NumpadMult * (multiplicação ou asterisco)
NumpadAdd + (adição)
NumpadSub - (subtração)
NumpadEnter Enter

Teclas de Função

Nome Descrição
F1 - F24 As 12 ou mais teclas de função que ficam na parte de cima da maioria dos teclados.

Teclas Modificadoras

Nome Descrição
LWin Tecla Win (botão do Windows) da esquerda. Corresponde ao prefixo <#.
RWin

Tecla Win da direita. Corresponde ao prefixo >#.

Observação: Ao contrário do caso das teclas Ctrl/Alt/Shift, não há tecla "Win" genérica/neutra porque o sistema operacional não a suporta. No entanto, as hotkeys com o modificador # podem ser desencadeadas por quaisquer das teclas Win, esquerda ou direita.

Control (ou Ctrl) Ctrl. Como hotkey (Control::), a tecla Ctrl só é enviada no momento em que é solta a não ser que esteja acompanhada do prefixo ~ (til). Corresponde ao prefixo ^ das hotkeys.
Alt Alt. Como hotkey (Alt::), a tecla Alt só é enviada no momento em que é solta a não ser que esteja acompanhada do prefixo ~ (til). Corresponde ao prefixo ! das hotkeys.
Shift Shift. Como hotkey (Shift::), a tecla Shift só é enviada no momento em que é solta a não ser que esteja acompanhada do prefixo ~ (til). Corresponde ao prefixo + das hotkeys.
LControl (ou LCtrl) Tecla Ctrl da esquerda. Corresponde ao prefixo <^ das hotkeys.
RControl (ou RCtrl) Tecla Ctrl da direita. Corresponde ao prefixo >^ das hotkeys.
LShift Tecla Shift da esquerda. Corresponde ao prefixo <+ das hotkeys.
RShift Tecla Shift da direita. Corresponde ao prefixo >+ das hotkeys.
LAlt Tecla Alt da esquerda. Corresponde ao prefixo <! das hotkeys.
RAlt

Tecla Alt da direita. Corresponde ao prefixo >! das hotkeys.

Observação: Se o layout do seu teclado contém a tecla AltGr no lugar da RAlt, você provavelmente conseguirá usá-la como um prefixo de hotkey apondo o prefixo <^>!, conforme descrito aqui. Além disso, LControl & RAlt:: torna a própria tecla AltGr uma hotkey.

Teclas de Multimídia

A função atribuída a cada uma das teclas listadas abaixo pode ser sobrescrita modificando-se o registro do Windows. A tabela abaixo mostra a função padrão de cada tecla na maioria das versões do Windows.

Nome Descrição
Browser_Back Voltar
Browser_Forward Avançar
Browser_Refresh Atualizar
Browser_Stop Parar
Browser_Search Pesquisar
Browser_Favorites Favoritos
Browser_Home Página inicial
Volume_Mute Mutar o volume
Volume_Down Diminuir o volume
Volume_Up Aumentar o volume
Media_Next Próxima faixa
Media_Prev Faixa anterior
Media_Stop Parar
Media_Play_Pause Tocar / Pausar
Launch_Mail Abre o programa padrão de e-mail
Launch_Media Abre o player de mídia padrão
Launch_App1 Abre Meu Computador
Launch_App2 Abre a Calculadora

Outras Teclas

Nome Descrição
AppsKey Menu. Esta é a tecla que invoca o menu de contexto ao se clicar com o botão direito.
PrintScreen PrtSc (tecla print screen)
CtrlBreak Ctrl+Pause ou Ctrl+ScrollLock
Pause Pause ou Ctrl+NumLock. Enquanto a tecla Ctrl é mantida pressionada, Pause produz o código CtrlBreak e NumLock produz Pause, então use ^CtrlBreak nas hotkeys em vez de ^Pause.
Break Obsoleto: Use o sinônimo Pause em vez de Break para evitar ambiguidade.
Help Ajuda. Esta tecla provavelmente não existe na maioria dos teclados. Normalmente não é a mesma de F1.
Sleep Adormecer (aguardar uma quantidade especificada de milissegundos) Note que, em alguns teclados, a tecla Adormecer pode não funcionar com este termo “Sleep”.
SCnnn Especifique com o código nnn de leitura da tecla. Reconhece as teclas incomuns não mencionadas acima. Veja Teclas Especiais para detalhes.
VKnn

Especifique com o código virtual hexadecimal nn de uma tecla. Este método, raramente usado, também dispensa certos tipos de hotkeys da exigência do gancho de teclado. Por exemplo, a hotkey a seguir não usa o gancho de teclado, mas como um efeito colateral ela é acionada ao se pressionar tanto Home quanto NumpadHome:

^VK24::MsgBox Você pressionou Home ou NumpadHome enquanto mantinha pressionada a tecla Control.

Limitação conhecida: hotkeys de chave virtual que são forçadas a usar o gancho de teclado, como *VK24 ou ~VK24, serão acionadas somente por uma das teclas, não ambas (por exemplo, NumpadHome mas não Home. Para mais informações sobre o método VKnn, vide Teclas Especiais.

Aviso: somente Send, GetKeyName(), GetKeyVK(), GetKeySC() e #MenuMaskKey suportam a combinação de VKnn com SCnnn. [v1.1.27+]: A presença de um sufixo inválido impede VKnn de ser reconhecida. Por exemplo, vk1Bsc001:: gera um erro nas versões 1.1.27 e posteriores, mas sc001 foi ignorada (não tinha efeito) nas versões anteriores.

Joystick

Joy1 a Joy32: Os botões do joystick. Para ajudar a determinar os números dos botões de seu joystick, use este script de teste. Note que símbolos de prefixos de hotkeys como ^ (control) e + (shift) não são suportados (apesar de GetKeyState() poder ser usada como substituta). Também note que pressionar os botões do joystick sempre “passa através” da janela ativa se essa janela for desenvolvida para detectar o pressionamento de botões do joystick.

Apesar de os nomes de controle de Joystick abaixo não poderem ser usados como hotkeys, eles podem ser usados com GetKeyState():

Joysticks Múltiplos: se o computador possui mais de um joystick e você deseja usar um que não seja o primeiro, inclua o número do joystick (máximo de 16) na frente do nome do controle. Por exemplo, 2joy1 é o primeiro botão do segundo joystick.

Observação: Se você tiver problemas para fazer um script reconhecer um joystick, uma pessoa reportou a necessidade de especificar um número de joystick que não seja 1 mesmo que somente um joystick esteja presente. Não está claro o porquê de essa situação ocorrer nem se é normal, mas experimentar com o número do joystick no script de teste de joystick pode ajudar a determinar se isso se aplica ao seu sistema.

Veja também:

Controles Remotos de Mão

Responda a sinais de controles remotos de mão por meio do script do cliente WinLIRC.

Teclas Especiais

Se seu teclado ou mouse tem uma tecla não listada acima, você talvez ainda consiga criar uma hotkey com ela seguindo os passos a seguir:

  1. Certifique-se que pelo menos um script com o gancho de teclado esteja em execução. Você pode determinar se um script possui o gancho de teclado abrindo sua janela principal e selecionando “View->Key history” a partir da barra de menus.
  2. Dê um duplo click no ícone do script na área de notificação para abrir sua janela principal.
  3. Pressione uma das “teclas misteriosas” em seu teclado.
  4. Selecione o item de menu “View->Key history”.
  5. Role para baixo até o fim da página. Em algum lugar perto do fim estão listados os eventos de pressionamento e soltura da sua tecla. OBSERVAÇÃO: Algumas teclas não geram eventos e, por isso, não serão visíveis aqui. Se esse for seu caso, você não poderá criar uma hotkey diretamente a partir daquela tecla porque seu driver de teclado ou hardware manipula-a num nível muito baixo para que o AutoHotkey acesse. Para possíveis soluções, continue lendo.
  6. Se sua tecla é detectável, tome nota do valor hexadecimal de 3 dígitos na segunda coluna da lista (por exemplo: 159).
  7. Para definir essa tecla como uma hotkey, siga o exemplo abaixo:
    SC159:: ; Substitua 159 com o valor da sua tecla.
    MsgBox, %A_ThisHotkey% foi pressionada.
    return

Sentido contrário: Para remapear alguma outra tecla para tornar-se a “tecla misteriosa”, siga este exemplo:

; Substitua 159 com o valor descoberto acima. Substitua FF (se necessário) com a
; chave virtual da tecla, que pode ser descoberta na primeira coluna da tecla do Histórico de Teclas.
#c::Send {vkFFsc159} ; Veja Send {vkXXscYYY} para mais detalhes.

Soluções alternativas: se sua tecla ou botão do mouse não for detectável pela tela do Histórico de Teclas, uma das seguintes soluções pode ajudar:

  1. Reconfigure o software que veio com o seu mouse ou teclado (às vezes acessível no Painel de Controle ou Menu Iniciar) para fazer com a que a “tecla misteriosa” envie o pressionamento de alguma outra tecla. O dito pressionamento pode então ser definido como uma hotkey em um script. Por exemplo, se você configurar a tecla misteriosa para enviar Ctrl+F1, você pode então criar indiretamente uma hotkey com aquela tecla usando ^F1:: em um script.

  2. Tente o AHKHID. Você também pode tentar pesquisar o fórum por palavras-chaves como RawInput*, USB HID ou AHKHID.

  3. O que vem agora é um último recurso e geralmente deve ser usado só em caso de desespero. Isso porque sua chance de sucesso é baixa e este método pode causar efeitos colaterais indesejados que são difíceis de serem desfeitos:
    desabilite ou remova qualquer software extra que tenha vindo com seu teclado ou mouse ou altere seu driver para um mais padronizado, como aquele nativo do sistema operacional. Isto pressupõe que existe um driver para seu teclado ou mouse em particular e que você tolera ficar numa boa sem as funcionalidades fornecidas pelo software e driver personalizado do teclado ou mouse.

CapsLock e Editores de Método de Entrada (IME)

Algumas configurações do Editor de Método de Entrada do Windows (como entrada em japonês com teclado americano) usam a tecla CapsLock para alternar entre os modos. Nestes casos, o CapsLock é suprimido pelo IME e não pode ser detectado pelo AutoHotkey. Entretanto, os atalhos Alt+CapsLock, Ctrl+CapsLock e Shift+CapsLock podem ser desabilitadas com uma solução de contorno. Especificamente, enviar um comando de soltura de tecla para modificar o estado do IME, mas prevenir quaisquer outros efeitos sinalizando o gancho do teclado para suprimir o evento. A função a seguir pode ser usada para essa finalidade:

; Requer AutoHotkey v1.1.26+ e o gancho de teclado deve estar instalado.
#InstallKeybdHook
SendSuppressedKeyUp(key) {
    DllCall("keybd_event"
        , "char", GetKeyVK(key)
        , "char", GetKeySC(key)
        , "uint", KEYEVENTF_KEYUP := 0x2
        , "uptr", KEY_BLOCK_THIS := 0xFFC3D450)
}

Depois de copiar a função para um script ou salvá-la como SendSuppressedKeyUp.ahk dentro de uma biblioteca de função, ela poderá ser usada assim:

; Desabilitar atalhos com Alt+tecla para o IME.
~LAlt::SendSuppressedKeyUp("LAlt")

; Testar hotkey:
!CapsLock::MsgBox % A_ThisHotkey

; Remapear CapsLock para LCtrl de uma forma compatível com o IME.
*CapsLock::
    Send {Blind}{LCtrl DownR}
    SendSuppressedKeyUp("LCtrl")
    return
*CapsLock up::
    Send {Blind}{LCtrl Up}
    return