Действия «до» и «после»
Расширенный режим. Вкладка До и после на странице Группы приложений и параметр Тайм-аут «До» и «После» на странице Скрипты отображаются только в расширенном режиме. Настроенные скрипты «до» и «после» продолжают выполняться в простом режиме.
Скрипт «до» выполняется перед каждым действием, которое выполняет группа приложений, а скрипт «после» — когда действие завершилось. Используйте их для работы, общей для всех действий группы: сначала вывести окно на передний план, сохранить буфер обмена и восстановить его потом, вести журнал.
Они оборачивают любое совпадение в группе: жесты, горячие клавиши и подстановку текста одинаково. Глобальные события они не оборачивают.
Настройка
- На странице Группы приложений выберите группу и найдите карточку До и после.
- В разделе Перед каждым действием ① выберите Свой.
- В разделе Формат ② выберите, как записать скрипт: шагами, скриптом или (если AutoHotkey включён) на AutoHotkey. Затем напишите его так же, как действие. См. Шаги и язык скриптов.
- Сделайте то же в разделе После каждого действия ③ или оставьте Наследовать от глобальной.
- Примените изменения.
У каждого из двух свой выбор:
| Выбор | Что выполняется |
|---|---|
| Наследовать от глобальной (по умолчанию) | Скрипт «до» (или «после») глобальной группы, если он есть. Если нет — ничего. |
| Свой | Собственный скрипт этой группы. Пустой собственный скрипт ничего не выполняет, как Нет. |
| Нет | Ничего, даже если у глобальной группы есть скрипт. |
Скрипты глобальной группы задаются на той же карточке глобальной группы, где есть только Свой и Нет: над глобальной группой нет ничего, от чего можно наследовать. Именно их выполняет каждая группа с Наследовать от глобальной, и именно они выполняются вокруг собственных действий глобальной группы.
Скрипты какой группы выполняются
Используются скрипты группы, действие которой выполнилось, а не группы окна:
| Выполнившееся действие взято из | Используемые «до» и «после» |
|---|---|
| Собственной группы приложений окна | Выбор этой группы: свои, глобальные (наследование) или никакие |
| Глобальной группы, потому что у окна нет группы | Глобальные |
| Глобальной группы в результате отката от группы окна | Глобальные, никогда — группы окна |
Порядок всего
Когда жест совпал, следующее выполняется строго одно за другим:
- Активировать окно под жестом, если этот параметр включён (только для жестов). См. Рисование жеста.
- Удерживаемые клавиши-модификаторы отпускаются, если параметр триггера Удерживаемые модификаторы — Отпустить, затем восстановить. См. Модификаторы и время нажатия.
- «До» — пока не завершится или его не прервёт тайм-аут.
- Действие — сколько потребуется.
- «После» — пока не завершится или его не прервёт тайм-аут.
- Удерживаемые клавиши-модификаторы нажимаются снова, если шаг 2 их отпустил.
Подробности:
- «До» не может отменить действие. Действие выполняется, как только «до» завершится, даже если «до» завершилось ошибкой или было остановлено тайм-аутом.
- Действие никогда не прерывается тайм-аутом. «После» начинается только тогда, когда действие завершилось.
- Горячая клавиша остановки всех действий останавливает выполняющуюся часть и пропускает остальное, включая «после».
- Та же информация о триггере. «До» и «после» видят те же сведения о жесте, окне и триггере, что и
действие (встроенные функции
Contextв справочнике по скриптам). - Каждое совпадение выполняет свою последовательность. Два жеста, нарисованные быстро один за другим, выполняют свои последовательности одновременно, каждый в своём порядке.
- Глобальное событие «Кнопка рисования отпущена» не входит в последовательность: оно начинается, когда вы отпускаете кнопку, параллельно с ней.
- Подстановка текста: введённый текст стирается до выполнения «до», а клавиша, завершившая его (например, пробел), вводится после действия, до выполнения «после». См. Подстановка текста.
Если у группы в итоге нет ни скрипта «до», ни скрипта «после», действие выполняется само по себе.
Тайм-аут «до» и «после»
Тайм-аут «До» и «После» на странице Скрипты, карточка Ограничения и тайм-ауты, ограничивает, сколько может выполняться каждый скрипт «до» или «после»: по умолчанию 3 000 миллисекунд, от 0 до 60 000. Скрипт, который всё ещё выполняется по истечении этого времени, останавливается, и начинается следующий шаг, без окна сообщения; в диагностической консоли появляется строка об этом (см. Консоль). При 0 каждому даётся около 20 миллисекунд.
На само действие это ограничение никогда не распространяется.