PyWinAuto+Pyauotgui实现Windows自动化操作
PyWinAuto+Pyauotgui实现Windows自动化操作
目前有操作Java开发的桌面程序的需求,PyWinAuto对于Java自绘图的无法读取到菜单,只能获取到窗口,则思路为使用PyWinAtuo打开窗口,使用Pyautoui进行目标操作
PyWinAuto
通过inspect.exe 查看窗口信息
ClassName
和Name
可用于查找窗口
1 | # 寻找类名为SunAwtFrame,标题带有buffer的窗口所在进程 |
- 最大化 :w.maximize()
- 最小化 :w.minimize()
- 恢复正常 :w.restore()
- 关闭窗口:w.close()
- 获取窗口状态:w.get_show_state() 返回1 最大化, 0正常,2最小化
- 获取窗口坐标:w.rectangle() 返回 (L35, T149, R1544, B913)
Pyautogui
对于Java自绘图的,pywinauto无法找到菜单等空间,则只用pyautogui进行图形模拟的操作
常用,点击pyautogui.click(x=x+w//2, y=y+h//2, clicks=1, interval=1, button='left')
图形定位:x, y, w, h = pyautogui.locateOnScreen(PIL.Image.open(os.path.join(self.path, img + '.png')), True, confidence=0.8)
备注:
如果使用confidence参数则需要安装OpenCV库,同时可能出现[Don't understand error reading improper permissions](https://stackoverflow.com/questions/59604926/dont-understand-error-reading-improper-permissions)
的报错,则使用cv2或者PIL库打开再传入即可,具体宽容度需要测试设置,过小很容易出发误操作
要设置操作延时:pyautogui.PAUSE = 1.5
,过快容易出错