1

Тема: AHK: Обработка только незанятых сочетаний клавиш

Ярлыкам, расположенным на Рабочем столе и в меню Пуск, можно назначить сочетания клавиш, срабатывающие только, если они не обрабатываются активным окном.
Возможно ли воспроизвести подобное поведение в AutoHotkey? Т.е. перед обработкой сочетания клавиш надо как-то проверить используется ли оно активным окном…

2

Re: AHK: Обработка только незанятых сочетаний клавиш

На чистом AHK определить, используется ли горячая клавиша активным окном, нет возможности, для этого нужно было бы установить хук на получаемые окном сообщения.
Проще всего для селективного назначения клавиш использовать директивы #If, #IfWinActive и т. п.

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

3

Re: AHK: Обработка только незанятых сочетаний клавиш

teadrinker, спасибо за ответ!

#IfWinActive и т. п.

Не совсем то: пришлось бы заранее прописывать список, потом его дополнять…
Ну да ладно, похоже, что и это неправда, хотя повсюду так написано:

…только, если они не обрабатываются активным окном.

— так что тему можно удалить.

4

Re: AHK: Обработка только незанятых сочетаний клавиш

Удалять ни к чему, вдруг кто-то что-нибудь посоветует.

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

5

Re: AHK: Обработка только незанятых сочетаний клавиш

wisgest пишет:

Ну да ладно, похоже, что и это неправда, хотя повсюду так написано:

…только, если они не обрабатываются активным окном.

— так что тему можно удалить.

Обрабатываться окном они могут по-разному. Если они прописаны в ресурсе ACCELERATORS, то система их знает, т.к. при их нажатии должна посылать окну WM_COMMAND с соответствующими параметрами. Вот, наверно, в этом случае и не срабатывают глобальные хоткеи. Но в принципе ничто не мешает окну просто смотреть, какие клавиши нажимаются, и соответственно реагировать. Этого уже система не может знать.