博客首页:knighthood2001
欢迎点赞评论️
❤️ 热爱python,期待与大家一同进步成长!!❤️
给大家推荐一款很火爆的刷题、面试求职网站
每日刷题,跟我一起来巩固基础和刷题吧
目的:本来想写个小学、初中、高中、大学中班群中未添加好友的统计,目前就先把最近写的分享出来,方便一起学习、交流!
步骤:
import subprocess
import uiautomation as auto
import time
# ToDo 这里需要更改微信所在地址,可通过桌面微信图标右键打开文件所在的位置查找到路径
subprocess.Popen('E:\微信\WeChat\WeChat.exe')
wechatWindow = auto.WindowControl(Name='微信', className="WeChatMainWndForPC")
首先是导入相应的模块,如uiautomation和subprocess,然后使用
subprocess.Popen()
打开微信(注意是登录状态),接着定义微信窗格对象,使用inspect.exe即可轻松搞定。
# 获取微信窗格的宽和高
w = wechatWindow.BoundingRectangle.width()
h = wechatWindow.BoundingRectangle.height()
# 将微信移到左上角,方便后续操作
wechatWindow.MoveWindow(0, 0, w, h)
这里尽量将微信移到左上角,因为后续点击微信用户时候,需要右击,这样可以防止出错(不信的人可以去试试)
接下来定义聊天信息和聊天成员的窗格对象。
b = wechatWindow.ButtonControl(Name='聊天信息')
b.Click()
b1 = wechatWindow.ListControl(Name='聊天成员')
b2 = wechatWindow.ButtonControl(Name='查看更多')
if b2.Exists():
b2.Click()
# 选框底部
rect_btm = b1.GetParentControl().BoundingRectangle.bottom
选框如下图
# 定位具体群成员
specific_mem = b1.GetChildren()
重点:
num = 0
for member in specific_mem:
if not b1.Exists(0, 0):
break
if member.Name == '添加' or member.Name == '删除':
continue
if member.BoundingRectangle.bottom > rect_btm:
auto.WheelDown(waitTime=0.01)
member.Click(15, 15)
# 主要是判断“添加到通讯录”按钮是否存在来判断是否添加好友
mail = wechatWindow.ButtonControl(Name="添加到通讯录")
if mail.Exists(0, 0):
num += 1
print(member.Name)
member.RightClick(15, 15)
if auto.IsKeyPressed(auto.Keys.VK_F4):
break
print('未添加的成员个数:', num)
wechatWindow.MoveToCenter()
①首先定义num,用来计算未加好友的人数,
②Exists(0, 0)大致意思表示最快时间搜索
③对于群中的添加、删除按钮,我们pass即可
④对于显示不出的群成员,需要进行滚轮滚动,通过判断控件底部的位置高低,实行滚轮滚动。
⑤主要是判断“添加到通讯录”按钮是否存在来判断是否添加好友,该按钮存在,则计数。
⑥
我们判断好后,需要让该选框消失,我们可以点击鼠标右键或者点击头像右上角部分,这里笔者采用点击鼠标右键(弊端是不能用在自己创建的群)。
⑦最后打印,并将微信界面居中。
这样,我们就实现了一开头的目的。