概述:Windows图形界面程序自动化——pywinauto
官方文档:https://pywinauto.readthedocs.io/en/latest/getting_started.html
Install
在线安装
1 | pip install pywinauto |
离线安装
搜索pypi下载指定安装文件
1 | pip setup.py install |
应用程序可访问技术
支持控件的访问技术:
(1)Win32 API (backend=”win32”) - 默认的backend)
MFC, VB6, VCL, 简单的WinForms控件和大多数旧的应用程序
(2)MS UI Automation API(backend=”uia”)
WinForms, WPF, Store apps, Qt5, 浏览器
启动
切入点主要是限制自动化控制进程的范围,如一个程序有多个实例,自动化控制一个实例,而保证其它实例(进程)不受影响。
在pywinauto中主要有两种对象可以建立这种入口点:
(1)Application的作用范围是一个进程,如一般的桌面应用程序都为此类。
(2)Desktop的作用范围可以跨进程。主要用于一个程序可以包含多个实例(进程)的程序。
Spy工具
Inspect
spy++
ViewWizard(窗口信息查看精灵)
下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk/
示例
(1)连接或者开启程序
1 | app = Application().start("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe") |
(2)菜单选择
1 | app = Application().start('notepad.exe') |
(3)按钮点击
1 | windows_name = u"关于记事本" |
(4)显示控件、子窗体、菜单
1 | print(app[title].print_control_identifiers()) |
(5)输入文字
1 | app[title].Edit.type_keys("Pywinauto works!\n",with_spaces=True,with_newlines=True) |
(6)移动鼠标
1 | from pywinauto.mouse import move |
(7)键盘指令
1 | from pywinauto.keyboard import SendKeys |
(8)启动
1 | # 输入徽标键 |