Recursão ao remapear no AutoHotKey

Recursão ao remapear no AutoHotKey

Aqui está o código que tenho:

[::
Send [
Input, Char, T2 L1
if Char = a
{
    Send â
    return
}
Send %Char%
return

Quando digito [then a, ele tem um comportamento normal e produz â. Mas, quando digito [then p, o caractere [não é impresso. O problema é a segunda linha ( Send [) em que [o caractere está sendo remapeado.

Tentei o seguinte sem sucesso:

  • Send `[

  • Send {[}

Quero imprimir [mesmo que esteja sendo remapeado.

Responder1

Use $como um modificador antes da tecla de atalho, ou seja $[::, .

Enquanto oDocumentação AHKafirma:

Geralmente, isso só é necessário se o script usar o comando Enviar para enviar as chaves que compõem a própria tecla de atalho, o que poderia fazer com que ela fosse acionada. O comportamento exato do prefixo $ varia dependendo do sistema operacional:

No Windows NT4/2k/XP ou posterior: O prefixo $ força o gancho do teclado a ser usado para implementar esta tecla de atalho, o que, como efeito colateral, impede que o comando Enviar acione-a. O prefixo $ equivale a especificar #UseHook em algum lugar acima da definição desta tecla de atalho.

No Windows 95/98/Me: A tecla de atalho é desabilitada durante a execução de seu thread e reativada posteriormente. Como efeito colateral, se #MaxThreadsPerHotkey for definido como maior que 1, ele se comportará como se estivesse definido como 1 para essas teclas de atalho.

informação relacionada