什么是HOOK(鈎子):消息攔截與處理


對於Windows系統,它是建立在事件驅動機制上的,說白了就是整個系統都是通過消息傳遞實現的。hook(鈎子)是一種特殊的消息處理機制,它可以監視系統或者進程中的各種事件消息,截獲發往目標窗口的消息並進行處理。所以說,我們可以在系統中自定義鈎子,用來監視系統中特定事件的發生,完成特定功能,如屏幕取詞,監視日志,截獲鍵盤、鼠標輸入等等。
        鈎子的種類很多,每種鈎子可以截獲相應的消息,如鍵盤鈎子可以截獲鍵盤消息,外殼鈎子可以截取、啟動和關閉應用程序的消息等。鈎子可以分為線程鈎子和系統鈎子,線程鈎子可以監視指定線程的事件消息,系統鈎子監視系統中的所有線程的事件消息。因為系統鈎子會影響系統中所有的應用程序,所以鈎子函數必須放在獨立的動態鏈接庫(DLL) 中。
       所以說,hook(鈎子)就是一個Windows消息的攔截機制,可以攔截單個進程的消息(線程鈎子),也可以攔截所有進程的消息(系統鈎子),也可以對攔截的消息進行自定義的處理。Windows消息帶了一些程序有用的信息,比如Mouse類信息,就帶有鼠標所在窗體句柄、鼠標位置等信息,攔截了這些消息,就可以做出例如金山詞霸一類的屏幕取詞功能。

 

https://blog.csdn.net/hjxwudiha931721/article/details/76064165


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM