9
我不知道窗口鉤子是如何在「系統級」工作的。 MSDN只觸及了什麼事情很簡單:窗鉤 - 它們是如何工作的?
鉤子是系統消息處理機制的一個點,其中一個 應用程序可以安裝一個子程序來監視郵件流量 的系統和過程中的某些類型的消息然後才能到達目標窗口過程 。
我最好的猜測是類似下面的東西:每個消息被添加到消息隊列的窗口
之前,會先發送郵件到全局/局部鉤子,這可能會做些什麼,取決於他們的鉤子程序。在所有全局鉤子和本地鉤子之後,消息最終被添加到窗口消息隊列中。
然而,MSDN說,對於一些類型的鉤子的,它將監視events
,notifications
等
一個例子是WH_MOUSE_LL
鉤:
安裝,監視低一個鉤子程序級別鼠標 輸入事件。有關更多信息,請參閱LowLevelMouseProc鉤子 過程。
當他們說events
,我們在說窗口消息,還是他們的意思是別的?
我都錯了嗎?
獎勵風格點爲手繪圖的圖像。 – rkb 2011-12-26 00:13:48
這裏是一個小解釋http://b.1asphost.com/mmbaig/Tutorials/Windows_Hooks.html – 2011-12-26 00:47:06
許多掛鉤是基於消息的。但不是你所討論的鉤子,它實際上是由一個「事件」觸發的。它僅在* Windows創建消息並將其放入具有焦點的窗口的消息隊列中之前運行。與WH_MOUSE相比較,WH_MOUSE是一個全局鉤子,當應用程序調用Get/PeekMessage並且即將從消息隊列中檢索鼠標消息時運行。因此實際上由消息觸發。 – 2011-12-26 01:00:36