События

Primo Studio позволяет настроить реакцию Робота на отслеживаемое событие (обработать его). Под событием понимается сообщение, посланное объектом, чтобы сообщить о совершении действия. Это действие может быть вызвано пользовательским взаимодействием, например, нажатием кнопки, или какой-то другой программной логикой, например изменением значения свойства.

В Студии имеются обработчики следующих групп событий:

  • События рабочего стола (клик мышью, нажатие клавиши клавиатуры, запуск процесса, завершение процесса, изменение атрибута элемента).

  • События браузера (клик мышью, нажатие клавиши клавиатуры, изменение атрибута элемента).

  • События OCR (клик изображения).

  • События файловой системы (изменение файла).

Контейнер

Элемент События представляет собой контейнер обработчиков событий, работающий циклически. Он состоит из двух подконтейнеров:

  • «События» - сюда помещаются отслеживаемые события (триггеры).

  • «Действия» - сюда помещаются элементы, запускающие необходимые действия в ответ на произошедшее событие.

Пример:

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

А в подконтейнер «Действия» добавили Окно сообщения:

Результат: робот начнет отслеживать нажатие клавиши Tab и, когда это произойдет, выведет на экран окно с заданным сообщением.

Свойства

Описание общих свойств см. в разделе Свойства элемента. Символ * в названии свойства указывает на обязательность заполнения.

СвойствоТипОписание

События:

Аргумент*

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

Режим*

LTools.Common.Model. Triggers.TriggerScopeModes

Режим работы контейнера:

* Однократный (One Time) - прекращает отслеживать события после первого триггера.

* Последовательный (Sequential) - продолжает отслеживание после завершения всех действий. Установлен по умолчанию.

* Параллельный (Parallel) - никогда не прекращает отслеживание и запуск действий. Новое событие обрабатывается в параллельном потоке

Поток*

Boolean

Определите, нужно ли запускать контейнер в отдельном потоке

Вывод:

Переменная

LTools.Common. UIElements. IWFTriggerScope

Переменная для хранения ссылки на контейнер

Демонстрация работы разных режимов

  1. Работа в последовательном (Sequential) и Однократном (One Time) режимах.

    ‼️ Если в свойствах был выбран режим Последовательный (Sequential), то после выполнения действий отслеживание событий продолжится, а это значит, что цикл самостоятельно не завершится. Чтобы выйти из цикла, поместите в подконтейнер «Действия» элемент Остановка событий.

  2. Работа в параллельном режиме (Parallel):

TriggerEventArgs

LTools.Common.Model.Triggers.TriggerEventArgs - модель данных события. Данные зависят от типа триггера: робот заполняет только те свойства модели, которые относятся к вызываемому событию.

Свойства модели:

  1. TriggerName - имя триггера. System.String.

  2. TriggerID - ID элемента-события. System.Guid.

  3. TriggerType - тип триггера. System.RuntimeType.

  4. HotKey - данные о горячих клавишах. LTools.Common.Model.Triggers.HotKeyInfo.

  5. MouseClick - данные о клике мыши. MouseClickInfo.

  6. FileChange - данные об изменении файла. FileChangeInfo.

  7. ProcessInf - данные о процессе. ProcessInfo.

  8. Attribute - данные атрибута. AttributeInfo.

Пример данных для события спецкнопки:

Last updated