读取QQ消息的黑科技
着实不消的,微软界说了一套接口 UI Automation 用来自动化测试界面,可能提供应无障碍软件挪用,利便残疾人行使 Windows 措施。既然它能自动化测试界面,也就是说能取到界面里的全部对象,要否则怎么测试呢。 可是,并不是全部软件都支持UIA。海外的大公司的软件,可能行使尺度界面的措施都是支持的。出于利便残疾人行使软件的角度上思量,支持这套接口在有些国度是法令逼迫、可能提议的。可是海内没有相干划定,海内的软件险些都不支持,然则腾讯的 QQ 竟然支持! 腾讯的软件做还长短常好的,起码在海内来说它还长短通例范的。先放个避雷针,没准哪天腾讯找来删这篇文章了。 感激 yin kaisheng 的 uiautomation,把 UIA 封装的这么好用。 起首安装必需的库 pip install uiautomation 然后 打开 QQ 的动静窗口,这里只是演示,要是用措施打开动静窗口就较量贫困,这里就不先容了。 #导入必需的库 import uiautomation as auto #找到动静窗口。动静窗口的 ClassName='TXGuiFoundation',可是 QQ 主窗口的的类名也是这个。以是必要再增进一个参数作为区分 Name='哈哈' ,这是动静窗口的名字,和对方的 QQ 昵称一样。 qq_win = auto.WindowControl(searchDepth=1, ClassName='TXGuiFoundation', Name='哈哈') #先试着找到输入动静的编辑框,看看能不能取到内里的笔墨。假如 QQ 窗口是归并的,也许会有多个编辑框,这时必要配置函数 EditControl 的 foundIndex 来取其余编辑框。 input_edit = qq_win.EditControl() print(input_edit.Name) print(input_edit.GetValuePattern().Value) #打印编辑框内的笔墨 #汗青动静在 QQ 里是一个 list,list 会有许多 Children。Children 的 Name 就是汗青动静的笔墨部门了。 msg_list = qq_win.ListControl() #找到 list items = msg_list.GetChildren() for one_item in items: #遍历全部的 Children print(one_item.Name) #打印动静 此刻可以看到结果了吧。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |