Recursión al reasignar en AutoHotKey

Recursión al reasignar en AutoHotKey

Aquí está el código que tengo:

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

Cuando escribo [entonces a, tiene un comportamiento normal y produce â. Pero, cuando escribo [entonces p, el carácter [no se imprime. El problema es la segunda línea ( Send [) en la que [se está reasignando el personaje.

Intenté lo siguiente sin éxito:

  • Send `[

  • Send {[}

Quiero imprimir [incluso si se está reasignando.

Respuesta1

Úselo $como modificador antes de la tecla de acceso rápido, es decir $[::.

como eldocumentación AHKestados:

Por lo general, esto solo es necesario si el script usa el comando Enviar para enviar las claves que componen la propia tecla de acceso rápido, lo que de otro modo podría provocar que se active. El comportamiento exacto del prefijo $ varía según el sistema operativo:

En Windows NT4/2k/XP o posterior: el prefijo $ fuerza el uso del gancho del teclado para implementar esta tecla de acceso rápido, lo que como efecto secundario evita que el comando Enviar la active. El prefijo $ equivale a haber especificado #UseHook en algún lugar encima de la definición de esta tecla de acceso rápido.

En Windows 95/98/Me: la tecla de acceso rápido se desactiva durante la ejecución de su subproceso y se vuelve a activar después. Como efecto secundario, si #MaxThreadsPerHotkey se establece en un valor superior a 1, se comportará como si estuviera establecido en 1 para dichas teclas de acceso rápido.

información relacionada