Перейти к основному содержимому

Действия «до» и «после»

примечание

Расширенный режим. Вкладка До и после на странице Группы приложений и параметр Тайм-аут «До» и «После» на странице Скрипты отображаются только в расширенном режиме. Настроенные скрипты «до» и «после» продолжают выполняться в простом режиме.

Скрипт «до» выполняется перед каждым действием, которое выполняет группа приложений, а скрипт «после» — когда действие завершилось. Используйте их для работы, общей для всех действий группы: сначала вывести окно на передний план, сохранить буфер обмена и восстановить его потом, вести журнал.

Они оборачивают любое совпадение в группе: жесты, горячие клавиши и подстановку текста одинаково. Глобальные события они не оборачивают.

Настройка​

Input.ObserverПростойРасширенный
АВТОМАТИЗАЦИЯ
Действия
Подстановка текста
Фрагменты
Запись макросов
Песочница
Группы приложений
Группы игнорирования
Жесты
ДВИЖОК
Глобальные события
Зоны исключения
Скрипты
Плагины
НАСТРОЙКА
Общие
Оформление
Профили
Консоль
Безопасность
Справка
О программе
Группы приложений
Браузеры
ГлобальнаяЗАРЕЗЕРВИРОВАНА
Группы приложений
До и после
Скрипт, который оборачивает каждое действие этой группы: «До» выполняется первым, «После» — последним.
Перед каждым действием
Наследовать от глобальнойСвойНет
Формат
ШагиСкриптAutoHotkey
После каждого действия
Наследовать от глобальнойСвойНет
  1. На странице Группы приложений выберите группу и найдите карточку До и после.
  2. В разделе Перед каждым действием ① выберите Свой.
  3. В разделе Формат ② выберите, как записать скрипт: шагами, скриптом или (если AutoHotkey включён) на AutoHotkey. Затем напишите его так же, как действие. См. Шаги и язык скриптов.
  4. Сделайте то же в разделе После каждого действия ③ или оставьте Наследовать от глобальной.
  5. Примените изменения.

У каждого из двух свой выбор:

ВыборЧто выполняется
Наследовать от глобальной (по умолчанию)Скрипт «до» (или «после») глобальной группы, если он есть. Если нет — ничего.
СвойСобственный скрипт этой группы. Пустой собственный скрипт ничего не выполняет, как Нет.
НетНичего, даже если у глобальной группы есть скрипт.

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

Скрипты какой группы выполняются​

Используются скрипты группы, действие которой выполнилось, а не группы окна:

Выполнившееся действие взято изИспользуемые «до» и «после»
Собственной группы приложений окнаВыбор этой группы: свои, глобальные (наследование) или никакие
Глобальной группы, потому что у окна нет группыГлобальные
Глобальной группы в результате отката от группы окнаГлобальные, никогда — группы окна

Порядок всего​

Когда жест совпал, следующее выполняется строго одно за другим:

  1. Активировать окно под жестом, если этот параметр включён (только для жестов). См. Рисование жеста.
  2. Удерживаемые клавиши-модификаторы отпускаются, если параметр триггера Удерживаемые модификаторы — Отпустить, затем восстановить. См. Модификаторы и время нажатия.
  3. «До» — пока не завершится или его не прервёт тайм-аут.
  4. Действие — сколько потребуется.
  5. «После» — пока не завершится или его не прервёт тайм-аут.
  6. Удерживаемые клавиши-модификаторы нажимаются снова, если шаг 2 их отпустил.

Подробности:

  • «До» не может отменить действие. Действие выполняется, как только «до» завершится, даже если «до» завершилось ошибкой или было остановлено тайм-аутом.
  • Действие никогда не прерывается тайм-аутом. «После» начинается только тогда, когда действие завершилось.
  • Горячая клавиша остановки всех действий останавливает выполняющуюся часть и пропускает остальное, включая «после».
  • Та же информация о триггере. «До» и «после» видят те же сведения о жесте, окне и триггере, что и действие (встроенные функции Context в справочнике по скриптам).
  • Каждое совпадение выполняет свою последовательность. Два жеста, нарисованные быстро один за другим, выполняют свои последовательности одновременно, каждый в своём порядке.
  • Глобальное событие «Кнопка рисования отпущена» не входит в последовательность: оно начинается, когда вы отпускаете кнопку, параллельно с ней.
  • Подстановка текста: введённый текст стирается до выполнения «до», а клавиша, завершившая его (например, пробел), вводится после действия, до выполнения «после». См. Подстановка текста.

Если у группы в итоге нет ни скрипта «до», ни скрипта «после», действие выполняется само по себе.

Тайм-аут «до» и «после»​

Тайм-аут «До» и «После» на странице Скрипты, карточка Ограничения и тайм-ауты, ограничивает, сколько может выполняться каждый скрипт «до» или «после»: по умолчанию 3 000 миллисекунд, от 0 до 60 000. Скрипт, который всё ещё выполняется по истечении этого времени, останавливается, и начинается следующий шаг, без окна сообщения; в диагностической консоли появляется строка об этом (см. Консоль). При 0 каждому даётся около 20 миллисекунд.

На само действие это ограничение никогда не распространяется.