События
Primo Studio позволяет настроить реакцию Робота на отслеживаемое событие (обработать его). Под событием понимается сообщение, посланное объектом, чтобы сообщить о совершении действия. Это действие может быть вызвано пользовательским взаимодействием, например, нажатием кнопки, или какой-то другой программной логикой, например изменением значения свойства.
В Студии имеются обработчики следующих групп событий:
- События рабочего стола (клик мышью, нажатие клавиши клавиатуры, запуск процесса, завершение процесса, изменение атрибута элемента).
- События браузера (клик мышью, нажатие клавиши клавиатуры, изменение атрибута элемента).
- События OCR (клик изображения).
- События файловой системы (изменение файла).
Контейнер
Элемент События представляет собой контейнер обработчиков событий, работающий циклически. Он состоит из двух подконтейнеров:
- «События» - сюда помещаются отслеживаемые события (триггеры).
- «Действия» - сюда помещаются элементы, запускающие необходимые действия в ответ на произошедшее событие.
Пример:
В подконтейнер «События» мы поместили Событие спецкнопки, где выбрали клавишу Tab
.
А в подконтейнер «Действия» добавили Окно сообщения:
Результат: робот начнет отслеживать нажатие клавиши Tab
и, когда это произойдет, выведет на экран окно с заданным сообщением.
Свойства
Описание общих свойств см. в разделе Свойства элемента.
Символ *
в названии свойства указывает на обязательность заполнения.
Свойство | Тип | Описание |
---|---|---|
События: | ||
Аргумент* | LTools.Common.Model. Triggers.TriggerEventArgs | Аргументы, содержащие данные о произошедшем событии. Представлены переменной args, значение которой заполняется автоматически и только в момент возникновения события (например, при нажатии спецкнопки). Значение нельзя задать или отредактировать |
Режим* | LTools.Common.Model. Triggers.TriggerScopeModes | Режим работы контейнера: * Однократный (One Time) - прекращает отслеживать события после первого триггера. * Последовательный (Sequential) - продолжает отслеживание после завершения всех действий. Установлен по умолчанию. * Параллельный (Parallel) - никогда не прекращает отслеживание и запуск действий. Новое событие обрабатывается в параллельном потоке |
Поток* | Boolean | Определите, нужно ли запускать контейнер в отдельном потоке |
Вывод: | ||
Переменная | LTools.Common. UIElements. IWFTriggerScope | Переменная для хранения ссылки на контейнер |
Демонстрация работы разных режимов
-
Работа в последовательном (Sequential) и Однократном (One Time) режимах.
‼️ Если в свойствах был выбран режим Последовательный (Sequential), то после выполнения действий отслеживание событий продолжится, а это значит, что цикл самостоятельно не завершится. Чтобы выйти из цикла, поместите в подконтейнер «Действия» элемент Остановка событий.
-
Работа в параллельном режиме (Parallel):
TriggerEventArgs
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.
Пример данных для события спецкнопки: