Os novos documentos do AutoHotKey (que, por algum motivo, não estão vinculados aos antigos) mantêm os documentos herdados. tendência a tornar as descobertas sobre coisas assim muito difíceis.
Sua escolha de usar Hotstrings em vez de Teclas de atalho tem o benefício de nunca permitir que as strings acionem umas às outras (de Hotstrings ):
By default, hotstrings are never triggered by keystrokes produced by any AutoHotkey script. This avoids the possibility of an infinite loop where hotstrings trigger each other over and over. In v1.1.06 and later, this behaviour can be controlled with #InputLevel and SendLevel. However, auto-replace hotstrings always use send level 0 and therefore never trigger hook hotkeys or hotstrings.
Eu penso SendInput é suposto para operar de forma semelhante, por padrão, mas eu achei que tentar usar uma tecla de atalho simples com SendInput correria o risco de acionar outras teclas de atalho (e usar quase a mesma definição com um hotstring não funcionava, provavelmente devido a peculiaridades relacionadas ao cólon). tinha que pedir manualmente a tecla de atalho para usar o Keyboard Hook (que é instalado automaticamente devido ao uso de hotstrings):
#UseHook, On
:::SendInput, V ; Oddly enough, a colon as a hotkey trigger doesn't need
; to be escaped, but a colon in a hotstring, unescaped or
; otherwise, just breaks things.
; Wouldn't get triggered by :, even if uncommented (that's good!)
; v::SendInput, colons in AHK are confusing
#UseHook, Off
Você deve ser capaz de usar hotstrings para remapear outras teclas como já foi, embora as teclas de atalho possam funcionar em vez disso, se você realmente quiser, talvez com #UseHook como fiz no meu exemplo acima e / ou #InputLevel / SendLevel .