Рекурсия при переназначении в AutoHotKey

Рекурсия при переназначении в AutoHotKey

Вот код, который у меня есть:

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

Когда я печатаю [then a, он ведет себя нормально и выдает â. Но когда я печатаю [then p, символ [не печатается. Проблема во второй строке ( Send [), в которой [находится переназначаемый символ.

Я попробовал следующее, но безуспешно:

  • Send `[

  • Send {[}

Я хочу печатать, [даже если он переназначается.

решение1

Использовать $как модификатор перед горячей клавишей, т. е. $[::.

КакДокументация AHKсостояния:

Обычно это необходимо только в том случае, если скрипт использует команду Send для отправки клавиш, составляющих саму горячую клавишу, что в противном случае может привести к ее срабатыванию. Точное поведение префикса $ зависит от операционной системы:

В Windows NT4/2k/XP или более поздних версиях: префикс $ заставляет использовать хук клавиатуры для реализации этой горячей клавиши, что в качестве побочного эффекта не позволяет команде Send вызывать ее. Префикс $ эквивалентен указанию #UseHook где-то выше определения этой горячей клавиши.

В Windows 95/98/Me: горячая клавиша отключается во время выполнения ее потока и снова включается после этого. В качестве побочного эффекта, если #MaxThreadsPerHotkey установлен выше 1, он будет вести себя так, как будто установлен на 1 для таких горячих клавиш.

Связанный контент