Автоматизация действий на компьютере с помощью Human Emulator.
Помимо функционала по автоматизации работы в браузере в Human Emulator есть функционал, который позволяет выполнять автоматизацию действий в windows, то есть управлять внешними окнами.
Управление окнами Windows
Для управления другими программами из Human Emulator был добавлен специальный объект window, который содержит методы позволяющие получать подробную информацию по всем программам запущенным в системе и получать на эти программы интерфейсы управления windowinterface.
В свою очередь этот интерфейс управления окнами содержит полный набор методов для работы с внешними приложениями. Эти методы разбиты на следующие функциональные группы:
- Управление окном
- Получение других окон
- Получение информации
- Получение расположения
- Проверки состояний
- Эмуляция мыши
- Эмуляция клавиатуры
Как это работает?
Все программы по сути это набор окон. Есть главное окно программы, а всё что содержится внутри этого окна — кнопки, поля ввода, панели, диалоги и т.д. это дочерние окна. При этом кнопка диалога есть дочернее окно окна диалога, которое в свою очередь есть дочерним окном главного окна программы. Для того что бы нажать на такую кнопку, нужно сначала нажать на другую кнопку, которая откроет этот диалог, а потом уже нажать на нужную нам кнопку в этом диалоге. Естественно, что без специального инструмента определения окон тут не обойтись.
MS Spy++
В качестве такого инструмента можно использовать программу MS Spy++, которая поможет нам определить структуру интересующих нас окон.

При запуске программы нам отображается весь список открытых окон в системе. Для того чтобы определить нужное нам окно мы должны воспользоваться поиском.

После чего найденное окно выделится в общем списке. Кликнув правой кнопкой на неё и вызвав свойства мы увидим диалог свойства окна. В этом окне можно узнать заголовок окна его класс и другие параметры, с помощью которых мы сможем управлять этим окном.

Пример работы. Управление скайпом
Данный пример делает следующие:
- Получаем интерфейс управления главным окном.
- Выполняем с ним следующие манипуляции — восстанавливаем размер, изменяем позицию, задаём новый размер, выводим поверх остальных окон.
- Определяем поле ввода для поиска контакта.
- Вводим туда строку и нажимаем Enter.
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.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.