Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取

这篇具有很好参考价值的文章主要介绍了Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python uiautomation 是一个用于自动化 GUI 测试和操作的库,它可以模拟用户操作来执行各种任务。
通过这个库,可以使用Python脚本模拟人工点击,人工操作界面。本文使用 Python uiautomation 进行微信电脑版的操作。

以下是本次实验的版本号。

uiautomation 微信,Python,python

你需要安装 uiautomation

pip install uiautomation

示例代码

import time
import uiautomation as auto
import re
from plyer import notification
 
notification_history = {}  # 历史消息
 
def check_wechat_messages():
 
    # 获取微信窗口
    wechat_win = auto.WindowControl(Name="微信", ClassName="WeChatMainWndForPC")
 
    shoukuanWin = wechat_win.ListControl(Name="会话")
    bbb = shoukuanWin.GetChildren()
 
    for chatMsg in bbb:
        if "条新消息" in chatMsg.Name:
 
            # 计算消息条数
            match = re.match(r'([a-zA-Z0-9]+)(\d+)条新消息', chatMsg.Name)
 
            if match:
                nickname = match.group(1)
                message_count = int(match.group(2))
 
                printInfo = f"{nickname} 给你发送了 {message_count} 条消息"
                print(printInfo)
                print("------------")
 
                # 获取消息列表控件
                xiaoxis = wechat_win.ListControl(Name="消息")
                 
                # 获取消息列表控件的子控件
                xiaoxi_children = xiaoxis.GetChildren()
 
                # 获取最后一个子控件
                last_xiaoxi = xiaoxi_children[-1]
 
                # 打印最后一条消息的内容
                print(last_xiaoxi.Name)
 
                # 在指定时间内不重发
                last_notification_time = notification_history.get((nickname, message_count), 0)
                current_time = time.time()
 
                if current_time - last_notification_time > 15:
 
                    # 依次发送
                    notification_title = f"来自 {nickname} 的 {message_count} 条消息"
                    notification_message = f"{last_xiaoxi.Name}"
 
                    notification.notify(
                        title=notification_title,
                        message=notification_message,
                        app_name="WeChat"
                    )
 
                    # 更新日志
                    notification_history[(nickname, message_count)] = current_time
 
if __name__ == "__main__":
    try:
        while True:
            check_wechat_messages()
            time.sleep(2)  #2秒检测一次UI组件
    except KeyboardInterrupt:
        print("程序退出~")
    except Exception as e:
        print(f"程序执行出现了问题: {str(e)}")

代码解析:

以上代码使用 uiautomation 实时获取微信聊天列表的消息状态,一旦有消息发过来,就会获取到发送人的微信昵称以及发送的消息内容、消息个数。

uiautomation 微信,Python,python

每2秒获取一次UI控件的内容,实测挂在后台对CPU和内存占用并无明显影响,结合Python uiautomation的各种用法,可以做成自动回复的功能。使用这款软件,可以获取到微信电脑版大部分控件的内容。例如:微信聊天列表、群名称、好友微信昵称、群人数、微信号等。 

uiautomation 微信,Python,python

还可以获取到群内的每一条聊天内容,获取到你跟好友的聊天记录。 

uiautomation 微信,Python,python只要 UISpy.exe 可获取到的控件内容,那么你用 Python就可以获取到。

拓展

还可以用来做收款监控。将【微信收款助手】这个公众号单独窗口出来,然后监控这个窗口。

妥妥的实现了一个PC收款监控。可以用来做收款码的支付回调。

uiautomation 微信,Python,python

import uiautomation as auto
import re
import time
 
def get_children_at_depth(control, target_depth, current_depth=0):
    children = control.GetChildren()
    result = []
 
    for child in children:
        if current_depth == target_depth:
            result.append(child)
        else:
            result.extend(get_children_at_depth(child, target_depth, current_depth + 1))
 
    return result
 
def process_last_child_information(previous_info):
    weixin = auto.WindowControl(Name="微信收款助手", ClassName="ChatWnd")
    xiaoxi = weixin.ListControl(Name="消息")
 
    target_depth = 5
    depth_5_children = get_children_at_depth(xiaoxi, target_depth)
 
    # 正则表达式模式
    pattern = r'收款到账通知(\d+月\d+日 \d+:\d+)收款金额¥([0-9.]+)汇总'
 
    last_child = None
 
    for child in depth_5_children:
        match = re.search(pattern, child.Name)
        if match:
            last_child = child  # 保存最后一条子控件的引用
 
    # 在循环结束后,提取最后一条子控件的信息
    if last_child:
        match = re.search(pattern, last_child.Name)
        if match:
            date_time = match.group(1)
            amount = match.group(2)
 
            # 监听下一笔
            if (date_time, amount) != previous_info:
                print("收款回调:")
                print(date_time)
                print("金额:", amount)
                print("正在等待下一笔...")
                print("----------")
 
                previous_info = (date_time, amount)
 
    return previous_info
 
# 循环
previous_info = None
 
while True:
    previous_info = process_last_child_information(previous_info)
    # 每2秒执行一次循环
    time.sleep(2)

请勿使用这种技术用于非法行为,仅供大家开发一写小工具自己用。

如果使用这种技术来进行违法行为所带来的责任自行负责,与工具、教程作者、发布的平台无关。文章来源地址https://www.toymoban.com/news/detail-763599.html

到了这里,关于Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python解密微信聊天记录

    链接: 傻瓜教程:使用小米系列手机提取微信聊天记录并制作词云图 链接: 手机端微信聊天记录数据库解密过程

    2024年02月07日
    浏览(24)
  • 基于Python的微信聊天记录分析——数据处理与分析

    本篇为《基于Python的微信聊天记录分析》系列的第二篇,主要讲解获取到聊天记录数据之后,在Python环境下对其进行数据处理、分析和可视化,涉及库的安装、相关操作的Python代码等内容。希望和大家多多交流,共同进步! 数据分析的基础是“数据”,俗话说基础不牢,地动

    2024年02月19日
    浏览(31)
  • 基于Python的微信聊天记录分析——可视化方法与主题模型构建

    本篇为《基于Python的微信聊天记录分析》系列的第三篇,主要讲解在Python环境下对聊天记录进行进一步的可视化,并对聊天内容进行初步挖掘,涉及聊天记录可视化方法、主题模型构建等内容。希望和大家多多交流,共同进步!  在上一篇中,我们将聊天记录统计分析的结果

    2024年04月12日
    浏览(32)
  • 删掉微信聊天记录怎么恢复 ?怎么恢复微信聊天记录?

    这个问题没有确定的答案,因为恢复取决于许多因素,包括删除聊天记录的时间以及使用的设备类型。但是,有几种方法可以成功恢复已删除的微信历史记录,例如使用数据恢复软件或联系客户支持。 如果你想将微信历史转移到另一台设备上,第二种方法非常有用。如果您需

    2024年02月01日
    浏览(32)
  • 怎么恢复微信聊天记录

    微信是一款非常受欢迎的社交软件,它可以让我们轻松跟朋友聊天,分享照片和视频,也可以让我们随时随地了解最新的新闻和信息。然而,如果您丢失了微信聊天记录,你会发现无法恢复。在本文中,我们将介绍 怎么恢复微信聊天记录 。 第一种方法:通过微信自带的 聊天

    2024年02月08日
    浏览(48)
  • 微信聊天记录数据分析

    目录 一、项目背景 二、数据准备 三、数据预处理及描述性统计 四、数据分析 1.聊天小时、日、月分别汇总分布图 2.聊天时间序列分布图 3.高频词汇统计 4.词云图展示 五、其它探索性分析 2021年2月20日我和我女朋友第一次见面,之后开启了我们两个人的故事,时隔一年我想将

    2024年02月04日
    浏览(55)
  • 信息搜集-读取微信聊天记录

    在攻防演练的钓鱼上线后,如果被钓的人使用微信,这时候可以通过读取微信里的聊天记录进行进一步搜集。 使用公开Github项目 https://github.com/AdminTest0/SharpWxDump 编译命令:C:WindowsMicrosoft.NETFrameworkv4.0.30319csc.exe .Program.cs /platform:x86 首先获取微信的Wechatkey ==》找到对应聊天

    2023年04月10日
    浏览(31)
  • 微信聊天记录导出(华为手机版)

    关于微信记录导出的有比较多的方法, 在这里进行汇总下, 以下都是经过我亲测可行的, 不要去买一些付费的软件, 自己手动操作下就好啦 主要参考这两篇文章: 微信聊天记录导出为电脑txt文件教程 微信聊天记录导出(2020新版) 具体步骤: 1.先登录电脑版微信 2.备份与迁移, 选择备

    2024年02月09日
    浏览(32)
  • 【python+wechaty+docker+nodejs】24年从0开始搭建使用python-wechaty接入微信聊天机器人全过程记录

    全网搜索了所有相关文章,由于个人原是java老程序员,对python有点兴趣,正好这个机器人的python资料比较多,因此就着手尝试。 在网上基本没有找到python-wechaty的完整说明的使用手册因此自己写一个记录一下全过程。 真正的从0开始。只有系统。没有其他的情况下,都是全新

    2024年01月24日
    浏览(38)
  • 微信聊天记录导出的开源项目,火了!

    大家好,我是 Jack。 今天又是分享开源项目的一天。 最近想训练一个符合某人说话风格的 AI,微信的聊天记录里就有着丰富的训练数据。 聊天记录是珍贵的记忆,也是每一场对话、每一个互动的真情流露。 想要拿到这些数据,无论是保存备份还是用于 AI 训练,手动拷贝都不

    2024年01月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包