PyAutoGUI模块能够控操作鼠标和键盘,实现与其它应用程序自动交互。PyAutoGUI模块支持Windows、OS X、Linux等平台,可以在Python 2和Python 3版本中调用。PyAutoGUI模块支持采用pip install命令在线安装,也可以到Github上下载源文件后离线安装。
pip install pyautogui
PyAutoGUI模块支持在屏幕上搜索指定的图片内容所在位置,于是想做个搜索微信电脑版的图标,然后双击图标启动微信电脑版的程序,代码比较简单,如下所示:
weixin=pyautogui.locateOnScreen('weixin.PNG')
if weixin is None:
print("not found")
else:
print("founded")
pyautogui.moveTo(weixin.left+weixin.width/2 , weixin.top+weixin.height/2, 2)
pyautogui.doubleClick()
但是实际执行过程中却发现,程序可以找到微信电脑版的图标,但是调用双击函数却没有反应,查看任务管理器,微信电脑版的进程也没有起来。百度错误现象,大部分网页给出的解决方案是说要以管理员身份启动python程序,但本人测试时命令行已经是管理员方式启动了,也有建议将杀毒软件关闭的,测试了一下,关闭杀毒软件后程序可以正常运行,调用双击函数能够启动微信电脑版,通过查看360杀毒软件安全操作中心的拦截记录,发现程序的很多次模拟按键操作都被杀毒软件拦截了(将python.exe加入到可信任区,但还是会被拦截,不清楚怎么回事儿)。
在测试过程中,还找了2种另外的方式:
1)按回车键。定位到图标后,先单击图标,然后模拟按回车键。关闭杀毒软件后,这种方式页可以启动图标,开着杀毒软件的话,模拟按回车键没有反应。程序代码如下所示:
weixin=pyautogui.locateOnScreen('weixin.PNG')
pyautogui.click(weixin.left+weixin.width/2 , weixin.top+weixin.height/2)
time.sleep(2)
pyautogui.press('enter')
2)任务栏启动。将微信桌面版图标固定到操作系统任务栏中,然后定位任务栏中的图标,模拟单击图标即可启动图标。经测试,这种方式杀毒软件没有拦截。
参考文献:
[1]https://pyautogui.readthedocs.io/en/latest/
[2]https://github.com/asweigart/pyautogui
[3]https://bbs.360.cn/thread-16036619-1-1.html