1 (изменено: GreenSoldier, 2024-02-05 13:52:29)

Тема: AHK: возможен ли повторый вход в обработчик?

Добрый день.

Только познакомился с AHK.
Использую такой код:


global bRun := False ; Где-то в секции начального исполнения...

^!l:: ; Ctrl+Alt+L - engage the macro

/*
   1. Set the sign that the macro has started, of leave the addiotional thread if it is on.
*/

if (bRun)
{
	MsgBox, Already
	Exit ; Exit new thread, try to OnExit, ExitApp
}
else
{
	bRun := True
	hMainWnd := WinExist("ahk_class Notepad")
}

_MainLoop:

Так сделал, чтобы при исполнении макроса для следующих нажатии Ctrl+Alt+L невозможно было снова попасть в этот обработчик, пока не обработано первое. Вопрос: а вообще возможно ли до Exit или return повторно попасть в обработчик, если он своей работы еще не закончил. У меня и не получается, такое впечатление, что есть какая-то настройка, запрещающая такое поведение, либо это невозможно в принципе.

В цикле, пока не будет нажата комбинация на прекращение макроса, что-то для теста пишет в Notepad, кликает мышкой. По логике работы может работать относительно долго. Так, сколько бы я ни жал Ctrl+Alt+L, ветка с сообщением о повторном входе никогда не получает управления.

Спасибо.

2

Re: AHK: возможен ли повторый вход в обработчик?

Читайте #MaxThreadsPerHotkey.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder