Автоматизация действий на компьютере с помощью Human Emulator.
Помимо функционала по автоматизации работы в браузере в Human Emulator есть функционал, который позволяет выполнять автоматизацию действий в windows, то есть управлять внешними окнами.
Управление окнами Windows
Для управления другими программами из Human Emulator был добавлен специальный объект window, который содержит методы позволяющие получать подробную информацию по всем программам запущенным в системе и получать на эти программы интерфейсы управления windowinterface.
В свою очередь этот интерфейс управления окнами содержит полный набор методов для работы с внешними приложениями. Эти методы разбиты на следующие функциональные группы:
- Управление окном
- Получение других окон
- Получение информации
- Получение расположения
- Проверки состояний
- Эмуляция мыши
- Эмуляция клавиатуры
Как это работает?
Все программы по сути это набор окон. Есть главное окно программы, а всё что содержится внутри этого окна — кнопки, поля ввода, панели, диалоги и т.д. это дочерние окна. При этом кнопка диалога есть дочернее окно окна диалога, которое в свою очередь есть дочерним окном главного окна программы. Для того что бы нажать на такую кнопку, нужно сначала нажать на другую кнопку, которая откроет этот диалог, а потом уже нажать на нужную нам кнопку в этом диалоге. Естественно, что без специального инструмента определения окон тут не обойтись.
MS Spy++
В качестве такого инструмента можно использовать программу MS Spy++, которая поможет нам определить структуру интересующих нас окон.
При запуске программы нам отображается весь список открытых окон в системе. Для того чтобы определить нужное нам окно мы должны воспользоваться поиском.
После чего найденное окно выделится в общем списке. Кликнув правой кнопкой на неё и вызвав свойства мы увидим диалог свойства окна. В этом окне можно узнать заголовок окна его класс и другие параметры, с помощью которых мы сможем управлять этим окном.
Пример работы. Управление скайпом
Данный пример делает следующие:
- Получаем интерфейс управления главным окном.
- Выполняем с ним следующие манипуляции — восстанавливаем размер, изменяем позицию, задаём новый размер, выводим поверх остальных окон.
- Определяем поле ввода для поиска контакта.
- Вводим туда строку и нажимаем Enter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
echo "1. Получим окно скайпа : "; $skype=$window->get_by_text("Skype"); if (!$skype->is_exist()) { echo "not ok<br>"; $debug->notification_box("Скайп не запущен.",10000); $app->quit(); } else echo "ok<br>"; echo "2. Откроем окно скайпа : "; // откроем окно скайпа // восстановить размер $skype->restore(0,0); // изменение поцизии окна на экране $skype->move(0,0); // зададим новый размер $skype->resize(800,600); // вывести окно на передний план $skype->foreground(); // определим поле ввода для поиска контакта $search=$skype->get_child_by_class("TSearchControl"); // задаём в него фокус $search->mouse_click(5,5); // вводим строку хуман и нажимаем Enter c помощью символа \n $search->input("хуман\n",100); |
По факту с помощью функционала объекта window и интерфейса управления windowinterface мы можем автоматизировать любые действия пользователя в Windows.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.