Использование Double Colon :: и команды горячих клавиш в одном и том же скрипте ломает один - PullRequest
0 голосов
/ 17 апреля 2020

У меня странное поведение в сценарии. В следующем MWE объявление Hotkey F2 не работает, пока есть строка F1. Если я закомментирую строку 2, то горячая клавиша F2 будет работать нормально.

#SingleInstance, Force
F1::MsgBox You pressed F1
Hotkey F2, Alone
return

Alone:
MsgBox You pressed F2.
return

Существует ли взаимодействие между двоеточием и командой «Горячая клавиша», которое вызывает это? Есть ли способ обойти это?

Конечно, это часть большого скрипта с несколькими разными горячими клавишами. Двойная двоеточие используется для большинства горячих клавиш в коде, но я думаю, что мне нужно использовать команду горячих клавиш для динамических клавиш c (скажем, одна из них определена в INI-файле). Этот код является частью большого кодового набора с горячими клавишами stati c (с использованием двоеточия), и я не могу изменить эту часть кода.

Я запускаю Autohotkey v1.1.25.02 на Windows Enterprise 1909 (сборка ОС 18363.720)

Примечание: я заметил, что если я ставлю объявления с двойным двоеточием после команды Hotkey (т.е. переупорядоченные строки 2 и 3), это, кажется, работает. Я не знаю, если это вариант. В исходном скрипте сотни строк кода. Я все еще хотел бы знать, что происходит, чтобы вызвать поведение.

1 Ответ

1 голос
/ 17 апреля 2020

Вы создаете однострочную горячую клавишу F1.
Выполнение кода не будет продолжаться до следующих строк.

Вот синтаксис, который вы ищете:

#SingleInstance, Force

F1::
    MsgBox, You pressed F1
    Hotkey, F2, Alone
return

Alone:
    MsgBox, You pressed F2.
return
...