События
Last updated
Last updated
Primo Studio позволяет настроить реакцию Робота на отслеживаемое событие (обработать его). Под событием понимается сообщение, посланное объектом, чтобы сообщить о совершении действия. Это действие может быть вызвано пользовательским взаимодействием, например, нажатием кнопки, или какой-то другой программной логикой, например изменением значения свойства.
В Студии имеются обработчики следующих групп событий:
События рабочего стола (клик мышью, нажатие клавиши клавиатуры, запуск процесса, завершение процесса, изменение атрибута элемента).
События браузера (клик мышью, нажатие клавиши клавиатуры, изменение атрибута элемента).
События OCR (клик изображения).
События файловой системы (изменение файла).
Элемент События представляет собой контейнер обработчиков событий, работающий циклически. Он состоит из двух подконтейнеров:
«События» - сюда помещаются отслеживаемые события (триггеры).
«Действия» - сюда помещаются элементы, запускающие необходимые действия в ответ на произошедшее событие.
Пример:
В подконтейнер «События» мы поместили Событие спецкнопки, где выбрали клавишу Tab
.
А в подконтейнер «Действия» добавили Окно сообщения:
Результат: робот начнет отслеживать нажатие клавиши Tab
и, когда это произойдет, выведет на экран окно с заданным сообщением.
Описание общих свойств см. в разделе Свойства элемента.
Символ *
в названии свойства указывает на обязательность заполнения.
События:
Аргумент*
Аргументы, содержащие данные о произошедшем событии. Представлены переменной args, значение которой заполняется автоматически и только в момент возникновения события (например, при нажатии спецкнопки). Значение нельзя задать или отредактировать
Режим*
LTools.Common.Model. Triggers.TriggerScopeModes
Режим работы контейнера:
* Однократный (One Time) - прекращает отслеживать события после первого триггера.
* Последовательный (Sequential) - продолжает отслеживание после завершения всех действий. Установлен по умолчанию.
* Параллельный (Parallel) - никогда не прекращает отслеживание и запуск действий. Новое событие обрабатывается в параллельном потоке
Поток*
Boolean
Определите, нужно ли запускать контейнер в отдельном потоке
Вывод:
Переменная
LTools.Common. UIElements. IWFTriggerScope
Переменная для хранения ссылки на контейнер
Работа в последовательном (Sequential) и Однократном (One Time) режимах.
‼️ Если в свойствах был выбран режим Последовательный (Sequential), то после выполнения действий отслеживание событий продолжится, а это значит, что цикл самостоятельно не завершится. Чтобы выйти из цикла, поместите в подконтейнер «Действия» элемент Остановка событий.
Работа в параллельном режиме (Parallel):
LTools.Common.Model.Triggers.TriggerEventArgs - модель данных события. Данные зависят от типа триггера: робот заполняет только те свойства модели, которые относятся к вызываемому событию.
Свойства модели:
TriggerName - имя триггера. System.String.
TriggerID - ID элемента-события. System.Guid.
TriggerType - тип триггера. System.RuntimeType.
HotKey - данные о горячих клавишах. LTools.Common.Model.Triggers.HotKeyInfo.
MouseClick - данные о клике мыши. MouseClickInfo.
FileChange - данные об изменении файла. FileChangeInfo.
ProcessInf - данные о процессе. ProcessInfo.
Attribute - данные атрибута. AttributeInfo.
Пример данных для события спецкнопки: