PyWinAuto使用
简单操作示例:
1 | app = application.Application().start(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe') |
(一) 判断程序的backend
注意,首先需要判断你要进行的程序是用什么语言写的,在实例化的时候会有区别,主要是判断backend是什么。
(二)确定自动化入口点
这里主要是限制自动化控制进程的范围。如一个程序有多个实例,自动化控制一个实例,而保证其他实例(进程)不受影响。
主要有两种对象可以建立这种入口点——Application() , Desktop().
- Application的作用范围是一个进程,如一般的桌面应用程序都为此类。
- Desktop的作用范围可以跨进程。主要用于像win10的计算器这样包含多个进程的程序。这种目前比较少见。使用方法见entry-points-for-automation
(三)连接到进程
建立好入口后,我们需要连接到进程中。这里有两种方法:
- 使用Application对象的start()方法
app = Application().start(r"D:\Program Files (x86)\tlxsoft\屏幕录像专家 共享版 V2017\屏录专家.exe")
- 连接到已有的进程。使用Application对象的connect()方法。这个方法对已有进程的绑定非常灵活。
app = Application().connect(process=19188)
- 使用窗口句柄绑定
app = Application().connect(handle=0x00230DB6)
- 使用程序路径绑定★
app = Application().connect(path=r"D:\Program Files (x86)\tlxsoft\屏幕录像专家 共享版 V2017\屏录专家.exe")
- 使用标题、类型等匹配★★(灵活性比较高)
app = Application().connect(title_re="屏幕录像专家.*", class_name="TMainForm")
菜单操作
1 | dlg_spec = app.window(title='屏幕录像专家 V2017') |
快捷键操作
1 | dlg_spec = app.window(title='屏幕录像专家 V2017') |
1 | SHIFT + |
参考
[python自动化工具之pywinauto](https://www.cnblogs.com/mapu/p/9235587.html)
Author: Mrli
Link: https://nymrli.top/2019/05/27/PyWinAuto使用/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.