Посты с тэгом pywinauto


Отслеживаем завершение процессом загрузки CPU (для задач pywinauto)

pywinauto - это Python модуль для автоматизации процессов над графическим интерфейсом Microsoft Windows. Другими словамия, модуль позволяет эмулировать действия мыши и клавиатуры над объектами окна.

Порой случается такая ситуация что приложение выполняет какое либо трудоемкое задание, при этом не выдает никаких "внешних" признаков по которым можно было бы отследить средствами pywinauto факт завершения выполнения задачи. Использование простой задержки time.sleep() черевато проблемами, если таймаут наступит, а процесс все еще будет занят.
Все что мы знаем в такой ситуации это то что процесс потребляет ресурсы CPU, так почему бы этим не воспользоваться?

Напишем вспомогательную функцию которая бы отслеживала CPU активность процесса и уведомяла нас когда он завершит выполнение трудоемкой задачи, проще говоря, перестанет грузить проц.

Для того что бы узнать текущу



pywinauto: Берегись event'ов, ибо они подлые

Предисловие
Речь в данном посте пойдет о подводных камнях при использовании стороннего программного обеспечения посредством средства автоматизации действий pywinauto, а именно о событиях. Как всем известно GUI-библиотеки строятся в стиле событийного (event-driven) программирования. Таким образом, любое действие приложения является ответом на действие пользователя. То есть внутри существует некий цикл, который ходит по очереди событий, формируемой действиями пользователя и запускает ответы. Таким образом, получаем ответ на конкретное событие. С этим все понятно.

Суть проблемы
Проблемы возникают, когда разработчик не знает, как именно обрабатываются события в используемой посредством pywinauto программы. Ра