文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用 Python 读取 QQ 消息

2024-12-10 16:10

关注

上一篇文章 《使用 Python 自动发送 QQ 消息》 发出以后,很多朋友非常感兴趣。还有朋友提出来了,有没有办法取到 QQ 的消息,是不是需要用抓屏,OCR 的方法?

其实不用的,微软定义了一套接口 UI Automation 用来自动化测试界面,或者提供给无障碍软件调用,方便残疾人使用 Windows 程序。既然它能自动化测试界面,也就是说能取到界面里的所有东西,要不然怎么测试呢。

但是,并不是所有软件都支持UIA。国外的大公司的软件,或者使用标准界面的程序都是支持的。出于方便残疾人使用软件的角度上考虑,支持这套接口在有些国家是法律强制、或者建议的。但是国内没有相关规定,国内的软件几乎都不支持,可是腾讯的 QQ 竟然支持!

腾讯的软件做还是非常好的,最少在国内来说它还是非常规范的。先放个避雷针,没准哪天腾讯找来删这篇文章了。

感谢 yin kaisheng 的 uiautomation,把 UIA 封装的这么好用。

首先安装必须的库

  1. pip install uiautomation 

然后 打开 QQ 的消息窗口,这里只是演示,要是用程序打开消息窗口就比较麻烦,这里就不介绍了。

 

#导入必须的库

  1. import uiautomation as auto 

#找到消息窗口。消息窗口的 ClassName='TXGuiFoundation',但是 QQ 主窗口的的类名也是这个。所以需要再增加一个参数作为区分 Name='哈哈' ,这是消息窗口的名字,和对方的 QQ 昵称一样。

  1. qq_win = auto.WindowControl(searchDepth=1, ClassName='TXGuiFoundation'Name='哈哈'

#先试着找到输入消息的编辑框,看看能不能取到里面的文字。如果 QQ 窗口是合并的,可能会有多个编辑框,这时需要设置函数 EditControl 的 foundIndex 来取其它编辑框。

  1. input_edit = qq_win.EditControl() 
  2. print(input_edit.Name
  3. print(input_edit.GetValuePattern().Value)   #打印编辑框内的文字 

#历史消息在 QQ 里是一个 list,list 会有很多 Children。Children 的 Name 就是历史消息的文字部分了。

  1. msg_list = qq_win.ListControl() #找到 list 
  2. items = msg_list.GetChildren() 
  3. for one_item in items:      #遍历所有的 Children 
  4.     print(one_item.Name)    #打印消息 

现在可以看到效果了吧。

 

这个例子只是简化的示例,大家快试试吧。没准哪天这篇文章就被删了。点个关注!收藏!谢谢!!

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯