日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

有朋友提出來了,有沒有辦法取到 QQ 的消息,是不是需要用抓屏,OCR 的方法?

其實不用的,微軟定義了一套接口 UI Automation 用來自動化測試界面,或者提供給無障礙軟件調(diào)用,方便殘疾人使用 windows 程序。既然它能自動化測試界面,也就是說能取到界面里的所有東西,要不然怎么測試呢。

但是,并不是所有軟件都支持UIA。國外的大公司的軟件,或者使用標準界面的程序都是支持的。出于方便殘疾人使用軟件的角度上考慮,支持這套接口在有些國家是法律強制、或者建議的。但是國內(nèi)沒有相關(guān)規(guī)定,國內(nèi)的軟件幾乎都不支持,可是騰訊的 QQ 竟然支持!

騰訊的軟件做還是非常好的,最少在國內(nèi)來說它還是非常規(guī)范的。先放個避雷針,沒準哪天騰訊找來刪這篇文章了。

感謝 yin kaisheng 的 uiautomation,把 UIA 封裝的這么好用。

首先安裝必須的庫

pip install uiautomation

然后 打開 QQ 的消息窗口,這里只是演示,要是用程序打開消息窗口就比較麻煩,這里就不介紹了。

使用 Python 讀取 QQ 消息

 

#導入必須的庫

import uiautomation as auto

#找到消息窗口。消息窗口的 ClassName='TXGuiFoundation',但是 QQ 主窗口的的類名也是這個。所以需要再增加一個參數(shù)作為區(qū)分 Name='哈哈' ,這是消息窗口的名字,和對方的 QQ 昵稱一樣。

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

#先試著找到輸入消息的編輯框,看看能不能取到里面的文字。如果 QQ 窗口是合并的,可能會有多個編輯框,這時需要設(shè)置函數(shù) EditControl 的 foundIndex 來取其它編輯框。

input_edit = qq_win.EditControl()
print(input_edit.Name)
print(input_edit.GetValuePattern().Value)   #打印編輯框內(nèi)的文字

#歷史消息在 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)    #打印消息

現(xiàn)在可以看到效果了吧。

使用 Python 讀取 QQ 消息

 

這個例子只是簡化的示例,大家快試試吧。沒準哪天這篇文章就被刪了。點個關(guān)注!收藏!謝謝!!

分享到:
標簽:Python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定