Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "#UseHook", в содержании - "#Directives" - "#UseHook", v1.0.47.06.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

#UseHook

Заставляет скрипт использовать хук для реализации всех или некоторых горячих клавиш.

#UseHook [On|Off]

Параметры

On|Off Если параметр не задан, #UseHook действует так же, как #UseHook On.

On: Хук клавиатуры будет использован для реализации всех горячих клавиш ниже вплоть до следующей директивы #UseHook Off (если она есть).

Off: Горячие клавиши будут реализованы с использованием метода по умолчанию (через функцию RegisterHotkey(), если это возможно; если нет, то с использованием хука клавиатуры).

Примечания

Как правило, горячие клавиши реализуются с использованием функции Windows API RegisterHotkey() везде, где это возможно. Однако при некоторых условиях отзывчивость (responsiveness) горячих клавиш может быть улучшена, если использовать вместо этого клавиатурный хук.

Применение этой директивы эквивалентно использованию префикса $ в определении каждой горячей клавиши. Исключением являются Windows 95/98/Me, в которых #UseHook игнорируется (хотя префикс $ работает в ограниченном варианте).

Как и все директивы, #UseHook обрабатывается только однажды при запуске скрипта, поэтому место для неё в скрипте выбирается не так, как для команд (т.е. нет необходимости помещать её внутрь процедуры). Вместо этого поместите её непосредственно перед первой из горячих клавиш, на которые должно распространяться её действие.

Горячие клавиши, использующие хук клавиатуры, не могут запускаться командой Send. Точно так же горячие клавиши мыши не могут запускаться командой Click, поскольку все они используют хук мыши. Чтобы обойти это, используйте Gosub, чтобы перейти к горячей клавише как к обычной метке. Например: Gosub #LButton.

Если данной директивы в скрипте нет, это равносильно её применению с параметром Off.

Пример

#UseHook  ; Заставляет горячие клавиши ниже использовать хук. 
#x::MsgBox, Эта горячая клавиша реализуется через хук.
#y::MsgBox, И эта также.
#UseHook off
#z::MsgBox, Но не эта.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.