【uiautomation】微信群发消息,获取群通讯录名单

前言

接到了一个需求:现微信有8000+好友,需要给所有好友发送一则一样的消息。网上搜索一番后,发现uiautomation 可以解决该需求,遂有此文。这是第四篇,获取群聊通讯录的用户名单。

代码在文章末尾,自取~
更多功能的微信群发消息代码链接 :https://github.com/Frica01/Wechat_mass_msg


知识点📖

知识点链接
Microsoft 的 uiautomationhttps://docs.microsoft.com/zh-cn/dotnet/framework/ui-automation/ui-automation-overview
Python 的 uiautomationhttps://github.com/yinkaisheng/Python-UIAutomation-for-Windows
微信群发消息 GitHub链接https://github.com/Frica01/Wechat_mass_msg

代码实现

该方法主要实现获取群聊通讯录口中的用户名称。

借助 inspect.exe 工具,可以清楚的看到对应的节点。而在知道节点后,后面的工作就很简单了!!

聊天信息窗口

聊天成员窗口
在这里插入图片描述


代码如下:

运行效果如下动图所示:

截取部分返回的名单片段,如下:

[
    '局长星仔', '飞', 'Sad.', '几好君', 'Tt', '๑YANYANYAN๑', '3333', '🚲', '゛🍭 ShAdoW♪ ℡', '绿树森林', '条条🐳',
    'LUCKY🎁', '哈路', '二晓🐒', '杏仁草', '🌈桐楠🌈', 'Renee', '宁', 'SK🐑', 'Pinky', '亍亍', '龙儿', 'Air°', '🎀梁小诗🎀', '叶叶叶子',
    '☝DvDv', '🐾 Yang.駿💮', 'Ni', 'sandra', 'Ellie🐳', 'tracy', '李剑淳', '🌻', ' 森さん🎄',
    ...
]

由上可见,有部分是用户名称中包含Emoji表情的,也可以拿下来~


完整代码

# -*- coding: utf-8 -*-
# @Author : Frica01
# @Time   : 2022-09-10 15:39
# @Name   : wechat_operation.py

import uiautomation as auto

wx_window = auto.WindowControl(Name='微信', ClassName='WeChatMainWndForPC')

auto.SendKeys(text='{Alt}{Ctrl}w')  # 快捷键唤醒微信


def get_group_chat_name_list() -> list | None:
    """获取群聊通讯录中的用户姓名"""
    name_list = list()
    auto.ButtonControl(Name='聊天信息').Click()
    chat_members_win = wx_window.ListControl(Name='聊天成员')
    if not chat_members_win.Exists():
        return
    wx_window.ButtonControl(Name='查看更多').Click()
    for idx, item in enumerate(chat_members_win.GetChildren()):
        name = item.ButtonControl().Name
        name_list.append(name)
    return name_list


if __name__ == '__main__':
    data = get_group_chat_name_list()
    print(len(data))
    print(data)

后话

如果看不懂代码,可以在下方留言~
see you.🎈🎈

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小菜欸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值