野狐圍棋網對弈客戶端,里面查看對手資訊的時候,會彈出一個對話框,顯示的是對手的資訊。
可是我想盡了辦法,也獲取不到這個對話框顯示的內容,它明明顯示在螢屏上,可是我就是無法獲取它的顯示內容到記憶體DC中并處理。
我檢測了一下,發現;
一,它是顯示的,屬性為ws_visable,后來我不放心又加了一條ShowwWindow(hdlg, SH_NORMAL), 也沒有用。
二,用GetDC(hdlg)獲取它的DC,再用BitBlt把它的內容拷貝到記憶體DC中,再顯示記憶體DC的內容,發現只顯示它后面背景的內容,它卻不存在。為了防止時間上出了差錯,我在GetDC后,用Sleep(3000)等待3秒,這時我發現,確實它顯示在螢屏上,可是拷貝到記憶體DC中再顯示出來,還是只有它背景的內容。
三,用SetPixel()向它的DC寫入像素點,發現什么也沒有寫上,沒有。
四,用CreateDC(L"DISPLAY", NULL, NULL, NULL)獲取整個螢屏的DC,再將它的內容拷到記憶體DC中,發現,也只有它的背景拷過去了,它就象不存在一樣。可是它明明顯示在那里。
用鍵盤上快捷鍵截屏,發現可以截到它。可是鍵盤快捷鍵截圖,用的是什么原理?
五、視窗句柄沒有獲取錯,其實,就算獲取錯了,當獲取整個螢屏的DC的內容時,它既然顯示在螢屏上,應該能獲取到,可是卻獲取不到,而且,我獲取前,是先行三秒的,而且獲取后,我用一種方法馬上顯示了記憶體DC的內容,發現立即就更新了,可是也只有它背景的內容。
請問這是怎么回事?
uj5u.com熱心網友回復:
用GetDesktopWindow來獲取桌面視窗的DC,再BitBlt到記憶體DC中,再顯示出來,發現還是沒有這個對話框的內容。只是在那個位置上顯示的是背景的影像。這個視窗跟鬼一樣,能看到它,卻捕捉不到其內容。
uj5u.com熱心網友回復:
WinAPIOverride http://jacquelin.potier.free.fr/winapioverride32/轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/95404.html
標籤:基礎類
