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

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

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

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

Ник переводчика: Дед Мазай.

Настоящее имя переводчика: Антон Иваненко, г.Москва.

#MaxThreadsPerHotkey

Устанавливает максимальное количество одновременно запущенных потоков для каждой комбинации горячих клавиш.

#MaxThreadsPerHotkey Значение

Параметры

Значение Максимальное количество потоков, которые могут быть запущены данной комбинацией горячих клавиш (максимум 20).

Примечания

Эта директива используется для контроля количества одновременно выполняемых процессов, вызванных запуском комбинации горячих клавиш. Например, если горячим клавишам указано максимальное количество процессов, равное 1, то повторные нажатия данных клавиш до истечения выполнения первого задания будут игнорироваться. Такой механизм также позволяет застраховаться от случайных двойных нажатий горячих клавиш. Однако, если вы хотите, чтобы ваши повторные нажатия горячих клавиш не игнорировались, а буферизовались - в том числе и для того, чтобы увеличить отзывчивость клавиатуры на повторные нажатия - используйте директиву #MaxThreadsBuffer.

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

Любая процедура горячих клавиш, начинающаяся с ExitApp, Pause, Edit, Reload, KeyHistory, ListLines, ListVars, или ListHotkeys выполняется всегда независимо от данной установки.

Директива #MaxThreads по сравнению с директивой #MaxThreadsPerHotkey имеет приоритет. Поэтому, если в скрипте присутствует директива #MaxThreads, и её значение меньше, чем значение #MaxThreadsPerHotkey, то выполняться будет только она.

Если данная директива в скрипте не указана специально, то для горячих клавиш используется значение по умолчанию, равное 1.

Пример

#MaxThreadsPerHotkey 2
!^SC010:: ; Ctrl+Alt+Q или Ctrl+Alt+Й
; возвратим установку по умолчанию "на место"
; (это нужно, если нам вздумается добавить в этот же скрипт
; другие горячие клавиши, где два потока одновременно не нужно):
#MaxThreadsPerHotkey 1
;===========================================
if Flag = y
{
    Flag =
    Return
}
;===========================================
Flag = y
Loop,
{
    ToolTip, Нажмите горячую клавишу %A_ThisHotkey% снова для остановки.
    Sleep, 1000
    ToolTip
    Sleep, 1000
    if Flag =
        Break
}
Return

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

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