2

В моем сценарии уже есть много строк #IfWinActive, и в настоящее время я использую #IfWinNotActive на многих моих глобальных горячих клавишах, чтобы отключить их, когда у меня активно определенное окно. Однако это не очень чистое решение, и теперь у меня есть более одной программы, для которой я хочу отключить свои горячие клавиши. В настоящее время я вручную приостанавливаю и отстраняю свой сценарий, но это становится довольно утомительным.

Мне было интересно, есть ли способ автоматически приостановить выполнение сценария, когда определенная программа активна, и отключить, когда программа теряет фокус.

2 ответа2

3

Есть способ, я делаю это, используя одну директиву #If в начале всех моих скриптов (с добавлением #Include):

#if (!WinActive("ahk_exe sublime_text.exe") && !WinActive("Tinychat"))

Это отключает горячие клавиши во всех моих сценариях, если либо: процесс Sublime Text (выполняется из любого каталога) активен, либо Tinychat активен в любом браузере. Вы можете изменить / добавить условия в этой строке, чтобы изменить / добавить процессы / окна / вкладки, которые вы хотите исключить.

0

Если сценарий приостановлен, то как он будет отключен? Лучше всего поместить основной сценарий в поток и поручить другому потоку приостановить и возобновить первый поток.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .