Python 应用 PyAutoGui 实现自动删除微信最新联系
2018-07-23 本文已影响11人
ae2cb3cbfdc1
想要一次性删除电脑版微信最近联系人,可以在设置里面清空聊天记录,如果是有个别联系人不想删除呢?就不能一次性清空了,我们可以使用 PyAutoGui 来跳过指定联系人进行删除的功能,不过这个功能暂不讨论,先来看看如何用 PyAutoGui 自动删除所有联系人。
PyAutoGui 是一个人性化的跨平台 GUI 自动测试模块,可以模拟鼠标、键盘进行自动化操作。
准备工作:截图
我们需要两张图片如下,这两张图片是用来查找对应按钮在屏幕上对应的坐标的:

注意:截图的时候,建议先对微信进行截图,在前面截图的结果上,再去截这两张图,因为我直接在微信上截这两张图的话,程序运行失败。
第一步:安装 PyAutoGui
打开 cmd 窗口,cd 命令进入 pip 文件目录,在安装目录下的 Python\Python36\Scripts
cd C:\Python\Python36\Scripts(替换成你自己的安装目录)
执行安装命令,等待安装完成之后,就可以在编码中使用了
pip install PyAutoGui
第二步:上代码,内容不多,难度不大,有注释,应该能看得懂
import pyautogui as pag
while True:
# 截取屏幕,这只是缓存,如果要保存截图,可以带上参数,即要保存的路径
pag.screenshot()
# 在屏幕截图中找到微信联系人的按钮图标,找到的话返回坐标如(42, 405, 27, 28),找不到返回 None
pointLeft = pag.locateOnScreen('screens/left.png')
print(pointLeft)
if pointLeft is None:
print("结束了")
break
# 找到按钮后,就能取得它的坐标,横坐标 +100,即在联系人上点击右键
pag.rightClick(pointLeft[0] + 100, pointLeft[1])
# 右键点击联系人之后会出现菜单,接着就要找到「删除聊天」的按钮位置
pag.screenshot()
pointDelete = pag.locateOnScreen('screens/delete.png')
print(pointDelete)
if pointDelete is None:
print("结束了")
break
# 找到「删除聊天」之后,适当把鼠标指针向右、下移动 10 px,点击删除
pag.click(pointDelete[0] + 10, pointDelete[1] + 10)