使用 Python 读取 QQ 消息

开发 后端 移动应用
有朋友提出来了,有没有办法取到 QQ 的消息,是不是需要用抓屏,OCR 的方法?其实不用的,微软定义了一套接口 UI Automation 用来自动化测试界面,或者提供给无障碍软件调用,方便残疾人使用 Windows 程序。既然它能自动化测试界面,也就是说能取到界面里的所有东西,要不然怎么测试呢。

使用 Python 读取 QQ 消息

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

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

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

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

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

首先安装必须的库

  1. pip install uiautomation 

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

 

使用 Python 读取 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)    #打印消息 

现在可以看到效果了吧。

 

使用 Python 读取 QQ 消息

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

责任编辑:未丽燕 来源: 今日头条
相关推荐

2015-09-07 10:57:38

qq未读消息

2009-03-03 10:41:00

2021-01-18 14:22:26

QQ浏览记录程序员

2023-08-15 19:24:37

Python条形码

2017-04-21 14:27:21

Android控件QQ未读消息

2020-01-10 22:56:56

Python图像处理Linux

2010-02-20 09:48:59

Windows 7qq故障

2020-08-10 08:28:19

ZeroMQCPython

2022-01-17 09:01:41

Pythonnc文件Python基础

2023-11-28 15:18:24

Python

2022-10-11 23:14:39

模态循环过滤器代码

2022-11-04 11:34:15

文件pathlibfileinput

2020-04-13 13:50:15

Python电子表格编程语言

2019-11-01 09:31:08

腾讯QQ帐号使用权

2021-05-07 13:20:39

Python机器人编程语言

2009-12-28 11:34:22

WPF处理消息

2024-03-22 12:10:39

Redis消息队列数据库

2021-01-19 05:48:11

QQ浏览器App

2021-03-11 06:01:41

Linux消息队列

2018-12-18 13:41:40

点赞
收藏

51CTO技术栈公众号