pywinauto:同时支持控件操作和图像操作,支持Win32 API和MS UI Automation API A set of Python modules to automate the Microsoft Windows GUI
$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywinauto
MFC,VB6,VCL简单的WinForms控件和大多数旧的应用程序
WinForms,WPF,Store apps,Qt5,浏览器
Application
作用范围是一个进程
Desktop
作用范围可以跨进程
from pywinauto.application import Application
# 打开指定的应用程序
# 1. 打开windows自带的应用app = Application(backend='uia').start("notepad.exe")
# 2. 打开任意一个应用程序app = Application(backend='uia').start("exe路径")
app = Application('uia').connect(process=4444)app = Application('uia').connect(handle=1904040)
# 方式一:app[类名/标题] :推荐使用该方式
# 1.通过窗口类型来选择dlg = app["TNavicatMainForm"]
# 2.通过窗口标题来选择dlg = app["Navicat for MySQL"]
# 方式二:app.类名dlg =app.TNavicatMainForm
dlg.print_control_identifiers()
# 窗口最大化dlg.maximize()
# 窗口最小化dlg.minimize()
# 窗口恢复正常大小dlg.restore()
# 查找窗口显示状态,最大化为1,正常为0status = dlg.get_show_state()
# 获取当前窗口的坐标位置rect = dlg.rectangle()print(rect)# (L548,T194,R1768,B1043)
# 关闭窗口dlg.close()
控件:窗口上的内容
# 选择控件
# menu = dlg.Menumenu = dlg["Menu"]print(menu.print_control_identifiers()) # 查看Menu上的控件
file = menu.child_window(title="文件", control_type="MenuItem")file.print_control_identifiers()