- Регистрация
- 25.11.2019
- Сообщения
- 120
- Благодарностей
- 87
- Баллы
- 28
Разработать систему многопоточной автоматизации управления приложениями с использованием ZennoPoster и Python. Основные задачи:
1. Управление действиями из таблицы setting
В основе работы системы лежит таблица setting, которая управляет процессом выполнения действий и обеспечивает гибкость настройки задач. Таблица является ключевым элементом, определяющим последовательность шагов, которые программа должна выполнить.
Логика работы с таблицей
Для каждого шага в таблице указываются:
Индивидуальный подход к каждому действию
В проекте предусмотрен механизм гибкой настройки действий:
Переменные для заполнения
Заполняйте только те переменные, которые необходимы для выполнения текущего действия из Switch:
Для каждой переменной в шпаргалке есть примеры использования. Например:
Особенности реализации:
Для каждой выполняемой операции система автоматически сохраняет результат в лог-файл.
- Управление действиями по координатам, найденным через поиск изображений или текста.
- Оптимизация выполнения задач в многопоточном режиме.
- Централизация логики выполнения действий и поддействий.
1. Управление действиями из таблицы setting
В основе работы системы лежит таблица setting, которая управляет процессом выполнения действий и обеспечивает гибкость настройки задач. Таблица является ключевым элементом, определяющим последовательность шагов, которые программа должна выполнить.
Логика работы с таблицей
Для каждого шага в таблице указываются:
- Основное действие (deistvie) — числовое значение, которое определяет тип действия, например, клик, ввод текста, прокрутка, поиск по картинке и т.д.
- Поддействие (pod_deistvie) — числовое значение, которое уточняет или детализирует основное действие, например, клик, удержание клавиши, вставка текста и т.д.
- Другие переменные — заполняются только те параметры, которые необходимы для выполнения конкретного действия (например, координаты клика, текст для поиска). Если заполнены переменные стороннего действия в текущем, они учитываться не будут.
Индивидуальный подход к каждому действию
В проекте предусмотрен механизм гибкой настройки действий:
- Шпаргалки: Для каждого действия в таблице setting подготовлены подробные инструкции с описанием всех необходимых переменных. Шпаргалки включают примеры, чтобы упростить понимание и настройку. Например, для действия "клик" описано, как правильно задать координаты и параметры.
- Сниппеты: Созданы готовые шаблоны установки значений, которые позволяют быстро и правильно добавить новое действие в таблицу. Они автоматически добавляют все нужные переменные и связывают их с соответствующим действием.
Переменные для заполнения
Заполняйте только те переменные, которые необходимы для выполнения текущего действия из Switch:
- x_click, y_click — координаты точки на экране, где должен произойти клик. Используются для действий, связанных с нажатием мыши.
- process_name — имя процесса или программы, с которой взаимодействует система. Например, это может быть имя активного окна или запущенного приложения.
- text_file — путь к текстовому файлу, который требуется открыть, читать или записать.
- x_start, y_start — начальные координаты области действия (например, начало выделения или рисования).
- x_end, y_end — конечные координаты области действия.
- static_width, static_height — фиксированная ширина и высота объекта или области, если они нужны для действия.
- deistvie — основное действие, которое нужно выполнить (например, клик, ввод текста, прокрутка и тд. соответствующие заданному номеру).
- pod_deistvie — уточнение действия (например, вставка текста, удержание кнопки и тд. соответствующие заданному номеру).
- text_to_search — текст, который необходимо найти (после выполнения действий с скриншотами окон).
- press_key — клавиша, которую нужно нажать (например, "Enter", "Ctrl").
- key_down — клавиша, которую нужно удерживать.
- key_press — последовательность нажатий клавиш (например, комбинация клавиш).
- x_end_plus_position, y_end_plus_position — смещение конечных координат действия относительно начальной точки.
- time_sleep — задержка перед выполнением действия, указанная в секундах.
- PAUSE — пауза при переходе на новое действие.
- x_scroll, y_scroll — координаты точки, где начинается прокрутка.
- scroll_amount — величина прокрутки (например, число строк или пикселей).
- window_name — имя окна, с которым необходимо взаимодействовать. Используется для поиска окна среди активных.
- program_dir — путь к исполняемому файлу программы или директории, где она находится.
- x_click, y_click — координаты точки на экране, где должен произойти клик. Используются для действий, связанных с нажатием мыши.
- x_click_def, y_click_def — координаты точки по умолчанию для клика (заданные в настройках для стандартных действий, например, клика по определенной кнопке).
- Если переменная setting заполнена, система выполняет поиск текста и действие (например, удаление). Если setting не заполнена, действие пропускается. Заполняется вариативно когда требуется.
Для каждой переменной в шпаргалке есть примеры использования. Например:
- Как задать координаты для клика мыши.
- Как настроить текстовый поиск и его обработку.
- Как правильно указать путь к файлу или процессу.
Эти примеры помогут быстрее понять, как заполнять таблицу setting для выполнения различных действий.
Особенности реализации:
- Динамическое управление действиями:
- Система извлекает данные из таблицы и обрабатывает их по указанным ключам.
- Для каждого действия задаются параметры, необходимые для корректного выполнения.
- Использование SWITCH:
- Основные действия и их поддействия разделены для удобства обработки.
- Уникальные переменные deistvie и pod_deistvie используются для идентификации шагов.
Для каждой выполняемой операции система автоматически сохраняет результат в лог-файл.
- Записываются текущие значения переменных deistvie и pod_deistvie.
- Логи позволяют анализировать выполнение программы, выявлять ошибки и отслеживать прогресс.
Поддержка многопоточности
Многопоточность реализована через специальный подпроект с названием "Подпроект сборник кодов индивидуально под приложения, возможен многопоток только в свернутом виде". Этот подпроект содержит функции, обеспечивающие:
Переменная для управления количеством потоков
Для управления количеством открываемых программ и потоков используется переменная по умолчанию how_long_tpen. Она задает число приложений, которые запускаются и обрабатываются в рамках одного потока.
Пример настройки:
4. Поиск по изображениям и тексту
Система поддерживает два основных метода взаимодействия с интерфейсом:
Каждое действие в таблице может быть адаптировано для выполнения множества задач. Для этого система использует динамические параметры, которые позволяют изменять логику выполнения без необходимости переписывания основного кода.
Ключевые особенности:
Для каждого этапа автоматизации предусмотрены:
Итог
Преимущества системы:
Многопоточность реализована через специальный подпроект с названием "Подпроект сборник кодов индивидуально под приложения, возможен многопоток только в свернутом виде". Этот подпроект содержит функции, обеспечивающие:
- Стабильную работу в многопоточном режиме.
- Централизованное управление логикой выполнения задач.
- Единообразие и упрощение кода.
Переменная для управления количеством потоков
Для управления количеством открываемых программ и потоков используется переменная по умолчанию how_long_tpen. Она задает число приложений, которые запускаются и обрабатываются в рамках одного потока.
Пример настройки:
- Если в переменной
how_long_to_Open
указано значение 5, то в каждом потоке будет открываться и управляться 5 приложений. - Переменная интегрируется в таблицу setting, где каждый поток получает свои параметры и действует в рамках заданной логики.
- Легкость масштабирования под разные задачи.
- Четкое разграничение потоков для повышения стабильности.
- Централизованное управление параметрами через таблицу setting, включая переменную
how_long_to_Open
.
4. Поиск по изображениям и тексту
Система поддерживает два основных метода взаимодействия с интерфейсом:
- Поиск по изображениям:
- Используется для определения координат элементов интерфейса на основе шаблонов.
- После определения координат выполняются действия: клики, перемещения и ввод данных.
- Поиск текста на экране:
- Применяется OCR для извлечения текста и получения его координат.
- Текстовые данные используются для дальнейших операций, таких как копирование, ввод или выделение.
Каждое действие в таблице может быть адаптировано для выполнения множества задач. Для этого система использует динамические параметры, которые позволяют изменять логику выполнения без необходимости переписывания основного кода.
Ключевые особенности:
- Действия разделены на основные (deistvie) и уточняющие (pod_deistvie).
- Возможность создавать вложенные шаги, обеспечивая большую гибкость выполнения.
Для каждого этапа автоматизации предусмотрены:
- Инструкции по заполнению переменных.
- Описание логики обработки данных.
- Примеры заполнения таблицы setting и настройки параметров.
Итог
Преимущества системы:
- Гибкость: Легкость добавления новых действий и их интеграции в проект.
- Эффективность: Оптимизированная многопоточность повышает скорость выполнения задач.
- Прозрачность: Логи и таблицы упрощают анализ выполнения и отладку программы.
- Удобство: Встроенные шпаргалки снижают порог входа и ускоряют настройку проекта.
Определение частей по картинке: специфика выполнения
В проекте для работы с изображениями используется специфический метод, позволяющий вручную определить видимую область, которая затем применяется для автоматического поиска.
Механизм работы:
В проекте для работы с изображениями используется специфический метод, позволяющий вручную определить видимую область, которая затем применяется для автоматического поиска.
Механизм работы:
- Ручное выделение области:
- Пользователю предлагается выделить интересующую часть изображения.
- Область сохраняется, чтобы ее можно было использовать для дальнейшей обработки.
- Выход из режима выделения осуществляется только двумя способами, так же есть сохранение:
- Нажатием клавиши S для сохранения области, хотя вы можете просто её выделить, она сохранится в папке selected_area_images.
- Нажатием ESC для выхода.
- Выход стандартными методами на крестик попросту перезапустит код, вариативный выход закрытие исполняемого файла кода.
- Автоматический поиск:
- После сохранения выделенной области система выполняет автоматический поиск по нарезанным фрагментам, сохраненным в папке.
- Все фрагменты проверяются для достижения максимальной точности.
- Перепроверка результата:
- После автоматического поиска проводится перепроверка по всем сохраненным нарезанным изображениям.
- Это позволяет уточнить результат и убедиться в корректности найденных данных.
- Гибкость: Возможность ручного выбора области позволяет работать с нестандартными изображениями или сложными интерфейсами.
- Точность: Автоматический поиск и перепроверка обеспечивают высокий уровень точности.
- Универсальность: Метод применим для множества задач, от анализа интерфейсов до извлечения данных.
Проблема коллизий при работе с буфером обмена
В многопоточном программировании буфер обмена часто используется для передачи данных между приложениями или частями программы. Однако:
Использование хоткеев (горячих клавиш) в управлении действиями позволяет избежать прямой зависимости от буфера обмена и снижает вероятность коллизий.
Использование горячих клавиш в многопоточной среде:
В многопоточном программировании буфер обмена часто используется для передачи данных между приложениями или частями программы. Однако:
- Общий доступ: Буфер обмена — это общий ресурс для всех потоков, что создает риск конфликта, когда несколько потоков одновременно пытаются его читать или записывать.
- Потеря данных: Если один поток перезаписывает данные в буфере до того, как другой поток их обработает, это может привести к некорректным результатам.
Использование хоткеев (горячих клавиш) в управлении действиями позволяет избежать прямой зависимости от буфера обмена и снижает вероятность коллизий.
- Изоляция потоков:
- Каждый поток может использовать собственный набор хоткеев для выполнения действий. Это исключает ситуации, когда несколько потоков обращаются к одному и тому же ресурсу (буферу обмена).
- Контроль выполнения:
- Хоткеи позволяют выполнять действия (например, ввод данных или вставку текста) напрямую, минуя промежуточное использование буфера.
- Это обеспечивает большую надежность и предсказуемость при выполнении задач.
- Скорость работы:
- С использованием горячих клавиш действия выполняются быстрее, так как они не требуют дополнительных операций с буфером.
- Простота реализации:
- В архиве проекта уже предусмотрен код для создания хоткеев, а также два кода для их использования:
- Один для вставки данных.
- Другой для их ввода.
- Эти решения легко интегрируются в систему и позволяют гибко настраивать хоткеи под конкретные задачи.
- В архиве проекта уже предусмотрен код для создания хоткеев, а также два кода для их использования:
- Настройка уникальных хоткеев:
- Для каждого потока можно задать собственные комбинации горячих клавиш.
- Это предотвращает конфликты при выполнении параллельных задач.
- Управление действиями через хоткеи:
- Хоткеи используются для выполнения стандартных операций (ввод текста, копирование, вставка), заменяя собой обращение к буферу обмена.
- Гибкость работы:
- Хоткеи интегрируются в логику обработки действий, управляемую переменными deistvie и pod_deistvie.
- Вся логика настроена через таблицу setting, что делает систему адаптивной и удобной для масштабирования.
Использование горячих клавиш в многопоточной среде:
- Исключает риски, связанные с использованием общего ресурса — буфера обмена.
- Повышает надежность и скорость выполнения задач.
- Упрощает реализацию и настройку автоматизации.
Вложения
-
474,7 КБ Просмотры: 38
-
2,5 МБ Просмотры: 39
-
3,3 МБ Просмотры: 24
Последнее редактирование модератором: