2010-03-23 55 views
1

我正在嘗試編寫一個程序來監視屏幕何時重新繪製。 意思是如果任何窗口的任何部分被重新繪製,那麼程序會被通知。如何監視屏幕更新?

據我瞭解,我應該用日記記錄鉤狀在 http://www.vbaccelerator.com/home/vb/code/libraries/Hooks/Journal_Record_Hooks/article.asp

不過,我不明白這味精類型會得到我的WM_PAINT事件(WH_CALLWNDPROC和WH_CALLWNDPROCRET似乎並沒有做的工作)。我甚至不確定WM_PAINT是我正在尋找的...

基本上,如果我知道何時與GetDesktopWindow()相關聯的DC發生了變化,那麼我的問題就會得到解決。

問題是:你如何監視屏幕更新?

回答

1

我不相信這是不可能的,沒有掛鉤顯示驅動程序。我可以想象,如果一般情況下可能會有一些嚴重的性能影響...

+0

在Vista上,日誌記錄掛鉤似乎需要簽名的exe(請參見http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.ui/2007-10/msg00143.html )所以我已經放棄了掛鉤。此外,似乎新的DWM縮略圖api-s不會借他們自己來捕獲他們的內容:( – user299600 2010-03-24 04:44:27

0

你會更好地採取截圖每秒或任何。當您通過網絡傳輸數據時,每個Windows版本的托盤中都有一個小網絡圖標,這意味着屏幕會不斷變化。