get started
1. pywinauto后端(pywinauto’s backend,以下简称为backend)
使用pywinauto的第一步是确定应用使用了哪种backend,以下列举了两种backend:
- win32(默认backend)
MFC,VB6,VCL简单的WinForms控件和大多数旧的应用程序所使用。
- uia
WinForms,WPF,Store apps,Qt5,浏览器所使用。
若想更为准确地确定backend,可以使用辅助工具:
application、desktop对象都是pywinauto自动化编程的入口。
2.1 Application
application对象适用于单进程应用自动化,连接应用后,方可使用它,以下列举了两种连接应用的方法:
2.1.1 start()
from pywinauto.application import Application app = Application(backend="win32") app.start(cmd_line=r"C:\Windows\system32\notepad.exe")
2.1.2 connect()
connect()用于应用已启动时,例如:
from pywinauto.application import Application app = Application(backend="win32") # 通过进程id来连接应用 app.connect(process=6672) # 通过句柄来连接应用 app.connect(handle=1967210) # 通过进程的可执行文件来连接应用 app.connect(path=r"C:\Windows\system32\notepad.exe") # 通过匹配dialog的标题来连接应用 # 更多匹配参数请参考:https://pywinauto.readthedocs.io/en/latest/code/pywinauto.findwindows.html#pywinauto.findwindows.find_elements app.connect(title="无标题 - 记事本")


from pywinauto import Desktop desktop = Desktop(backend="uia") # 匹配满足标题的显示(没有最小化)dialog dlg1 = desktop.window(title="广州_百度搜索 - Google Chrome") dlg2 = desktop.window(title="深圳_百度搜索 - Google Chrome")
若出来这种情况:

那么,包含深圳搜索词的dialog将视为未显示。
3. Dialog
连接完应用后,需要获取一个dialog对象来进行自动化,获取方式有:
from pywinauto.application import Application from pprint import pprint app = Application(backend="win32") app.connect(title="无标题 - 记事本") # 输出所有dialog pprint(app.windows()) # 通过dialog名来获取dialog dlg = app.Notepad # = dlg = app["Notepad"] # 获取置顶的dialog dlg = app.top_window() # 通过匹配dialog的标题来获取dialog # 更多匹配参数请参考:https://pywinauto.readthedocs.io/en/latest/code/pywinauto.findwindows.html?highlight=findwindows.find_windows() dlg = app.window(title="无标题 - 记事本")
4. Control
自动化的基本操作单元是control对象,获取方式有:
from pywinauto.application import Application
app = Application(backend="win32")
app.connect(title="无标题 - 记事本")
dlg = app["Notepad"]
# 输出所有control
dlg.print_control_identifiers()
# 设置文本为test
dlg.Edit.set_text("test")
# =
dlg["Edit"].set_text("test")
4.1 Function
control中可用的function请参考:https://pywinauto.readthedocs.io/en/latest/controls_overview.html

浙公网安备 33010602011771号