欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

【誤區(qū)分析】TB-創(chuàng)新互聯(lián)

一、基本原理

專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)左權(quán)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

使用SendMessage函數(shù)發(fā)送TB_BUTTONCOUNT消息到指定窗口,可以檢索工具欄中當(dāng)前按鈕的計(jì)數(shù)。但這個值可能并不是最新的,個數(shù)僅僅是當(dāng)前個數(shù),而且并非是顯示的個數(shù),也非有效按鈕窗口的個數(shù)。

使用SendMessage函數(shù)發(fā)送TB_GETBUTTON消息到指定窗口獲取指針,然后向指定進(jìn)程申請?jiān)L問內(nèi)存,獲取TBBUTTON結(jié)構(gòu)體中dwData字段數(shù)據(jù),可以獲得遠(yuǎn)線程的工具欄窗口中當(dāng)前所有按鈕的句柄、標(biāo)題、進(jìn)程路徑信息。但該信息可能包含舊的內(nèi)容。

任務(wù)欄的通知區(qū)域分為四個部分:用戶提示的通知區(qū)域、系統(tǒng)升級的通知區(qū)域,溢出角通知區(qū)域、DUI彈出式通知區(qū)域(部分圖標(biāo)如:電源電量、音量等的注冊記錄在溢出通知區(qū)域窗口,但是并不是在溢出窗口內(nèi)顯示的,所以單獨(dú)歸類)。通知區(qū)域是外殼處理器Shell控件:ToolBarWindow32.

首先我們需要明白任務(wù)欄的ToolBarWindow(工具欄視圖)的一些特征:

1)除系統(tǒng)升級的通知區(qū)域以外的通知區(qū)域圖標(biāo)不會自動刷新,需要接收到鼠標(biāo)移動消息、模擬點(diǎn)擊消息才會逐個刷新。

2)如果一個窗口多次在通知區(qū)域注冊通知圖標(biāo),即使它是由同一個窗口發(fā)出的,也會被記錄為獨(dú)立的窗口,但他們具有相同的信息,在外殼程序內(nèi)存中相應(yīng)位置按序排列。

二、案例如何發(fā)生?

當(dāng)開發(fā)者嘗試使用如下代碼獲取任務(wù)欄圖標(biāo)個數(shù)時可能得不到準(zhǔn)確的個數(shù):

LRESULT ButtonCount = SendMessage(hWnd, TB_BUTTONCOUNT, 0, 0);// 獲取hWnd窗口的圖標(biāo)個數(shù)

警告:以下談到的案例并不局限于任務(wù)管理器,其他第三方軟件都如此,這和資源管理器外殼Shell的處理邏輯有關(guān)系。

誤區(qū)1:忽略系統(tǒng)升級的通知區(qū)域,盡管這個區(qū)域經(jīng)常沒有顯示,但它位于溢出角按鈕和用戶通知區(qū)之間,當(dāng)有程序首次創(chuàng)建通知區(qū)圖標(biāo)的時候,提供短暫突出顯示的時間,這些圖標(biāo)臨時顯示在該區(qū)域,不在用戶區(qū)和溢出區(qū),當(dāng)超時完成時(最長60秒)這些圖標(biāo)被放入溢出區(qū)(前提是沒有被標(biāo)記為始終顯示)。在超時完成前通知統(tǒng)計(jì)的用戶區(qū)和溢出區(qū)圖標(biāo)數(shù)據(jù)中跳過了這些圖標(biāo)。

誤區(qū)2:忽略重復(fù)注冊的圖標(biāo)窗口,盡管這在我們看來是相當(dāng)荒誕的,但它確實(shí)發(fā)生過,也應(yīng)該引起相關(guān)開發(fā)者的注意。

這張圖片展示了當(dāng)任務(wù)管理器打開時(等待超時完成后記錄的結(jié)果),在使用TB_BUTTONCOUNT獲取個數(shù)時將多次記錄到任務(wù)管理器窗口,顯示為他創(chuàng)建了13個圖標(biāo)按鈕,隨后通過在外殼進(jìn)程內(nèi)存中讀取TBBUTTON結(jié)構(gòu)中的dwData數(shù)據(jù),得到窗口的標(biāo)題、句柄、以及目錄路徑(類名、矩形等其他信息是根據(jù)窗口句柄通過相關(guān)API遍歷枚舉的,不是直接獲得的結(jié)果),不難發(fā)現(xiàn)同樣的句柄有多條記錄,然而我們不需要多余的信息。這是TB類消息得到錯誤結(jié)果的重要原因。

誤區(qū)3:(對于誤區(qū)2而言)任務(wù)管理器等剛剛注冊通知圖標(biāo)的窗口,圖標(biāo)會顯示在系統(tǒng)升級通知區(qū),此時記錄的個數(shù)是真確的(唯一的)。因?yàn)樗灰邮障⒘耍蜁灰瞥揭绯鰠^(qū)。否則他只允許靜默一段時間。

誤區(qū)4:線程異常退出,而沒有注銷相應(yīng)圖標(biāo)。這時候我們把它稱作僵尸圖標(biāo),空有軀殼而沒有靈魂。但是這段內(nèi)存區(qū)域中相關(guān)信息不會被立即清除。導(dǎo)致獲得的計(jì)數(shù)以及句柄都是無效的。

通過檢查窗口的矩形,API調(diào)用返回“Error:1400”無效的窗口句柄即可排除該錯誤帶來的影響。

Notice:請觀察下圖數(shù)據(jù)

再看下圖數(shù)據(jù):

以上結(jié)果發(fā)生在一個已經(jīng)注冊通知圖標(biāo)的程序意外終止時(沒有來得及注銷圖標(biāo)),外殼程序內(nèi)存中不會及時刪除這些內(nèi)容,這些內(nèi)容可能位于錯誤的內(nèi)存位置,訪問這些位置會帶來意外的結(jié)果。即使用戶已經(jīng)刷新了視圖區(qū)域,這些內(nèi)容依然不會被清除,直到重啟資源管理器。

并且對無效的句柄使用GetClassName()返回值為0,但是不會向遍歷時候的字符串指針更新數(shù)據(jù),所以需要注意變量的作用域或者記得及時檢查錯誤原因,比如此時的LastError為1400,以及最后要記得將內(nèi)容重新初始化為{0}。一面這些垃圾數(shù)據(jù)影響用戶體驗(yàn)。(顯然圖中沒有考慮到這些問題)

-----------------------------------------------

希望通過我的分析,能夠給遇到相關(guān)問題的友人一點(diǎn)微薄的解答。文章如果有誤,歡迎各位斧正,謝謝!

轉(zhuǎn)載請注明博客來源:@漣幽516(http://t.csdn.cn/CpBeJ)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:【誤區(qū)分析】TB-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://aaarwkj.com/article6/dihhig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、服務(wù)器托管微信小程序、電子商務(wù)面包屑導(dǎo)航、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
蜜臀人妻久久一区二区三| 色婷婷中文字幕久久久| 国产精品午夜福利天堂| 日本中文字幕一二三四区| 一区二区三区成人高清视频| 黄色av免费播放网站| 日韩成人精品一区欧美成人| 亚洲综合日韩丝袜人妻| 久久亚洲第一视频网站| 亚洲一区日本一区二区| 麻豆人妻性色av专区| 国产传媒免费在线播放| 麻豆印象传媒在线观看| 亚洲一区日本一区二区| 亚洲精品一区二区牛仔裤| 国产日韩精品综合一区| 亚洲精品中文字幕乱码三区91 | 国产污视频网站在线观看| 国产视频专区一区二区| 亚洲香蕉一区二区免费| 国产精品国产三级国产专用| 观看亚洲一区二区三区大片| 成人av影视中文字幕| 黄色国产一区二区三区| 岛国av在线免费观看| 蜜桃视频在线观看视频免费| 亚洲一区二区午夜福利亚洲| 中文字幕乱码日韩在线| 啄木乌法国一区二区三区| 午夜香蕉av一区二区三区| 夜福利国产视频大屁股| 亚洲日本韩国在线免费| 丰满人妻被猛烈进入中文版| 亚洲欧美av中文日韩二区| 国产欧美日韩综合91| 91久久亚洲综合精品成人| 日本中文字幕有码专区| 国产美女主播一二三区| 中文字幕av免费专区| 日韩精品在线观看不卡| 婷婷激情五月国产丝袜|