您好,登錄后才能下訂單哦!
這篇文章主要介紹了windows鉤子實現參數有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
鉤子(Hook),是Windows消息處理機制的一個平臺,應用程序可以在上面設置子程以監視指定窗口的某種消息,而且所監視的窗口可以是其他進程所創建的。
windows鉤子是什么
當消息到達后,在目標窗口處理函數之前處理它。鉤子機制允許應用程序截獲處理window消息或特定事件。鉤子實際上是一個處理消息的程序段,通過系統調用,把它掛入系統。每當特定的消息發出,在沒有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數先得到控制權。這時鉤子函數即可以加工處理(改變)該消息,也可以不作處理而繼續傳遞該消息,還可以強制結束消息的傳遞。HookAPI是指Windows開放給程序員的編程接口,使得在用戶級別下可以對操作系統進行控制,也就是一般的應用程序都需要調用API來完成某些功能,HookAPI的意思就是在這些應用程序調用真正的系統API前可以先被截獲,從而進行一些處理再調用真正的API來完成功能。
其實Windows系統是建立在事件驅動的機制上的,說穿了就是整個系統都是通過消息的傳遞來實現的。而鉤子是Windows系統中非常重要的系統接口,用它可以截獲并處理送給其他應用程序的消息,來完成普通應用程序難以實現的功能。
可見,利用鉤子可以實現許多特殊而有用的功能。因此,對于高級編程人員來說,掌握鉤子的編程方法是很有必要的。
鉤子的種類很多,每種鉤子可以截獲并處理相應的消息,如鍵盤鉤子可以截獲鍵盤消息,外殼鉤子可以截取、啟動和關閉應用程序的消息等。
在實例程序中運用WH_GETMESSAGE鉤子,這個鉤子監視投遞到消息隊列中的Windows消息。
鉤子可以分為線程鉤子和系統鉤子,線程鉤子監視指定線程的事件消息,系統鉤子監視系統中的所有線程的事件消息。因為系統鉤子會影響系統中所有的應用程序,所以鉤子函數必須放在獨立的動態鏈接庫(DLL)中。
實現windows鉤子機制的幾個關鍵技術
windows的鉤子程序,需要用到幾個sdk中的api函數。下面列出這幾個函數的原型及說明:
hhooksetwindowshookex(intidhook,hook_proclpfn,hinstancehmod,dworddwthreadid);
參數說明如下:
idhook:鉤子的類型
lpfn:鉤子處理函數地址
hmod:包含鉤子函數的模塊句柄
dwthreadid:鉤子的監控線程
函數說明:函數將在系統中掛上一個由idhook指定類型的鉤子,監控并處理相應的特定消息。
boolunhookwindowshookex(hhookhhk);
函數說明:函數將撤銷由hhk指定的鉤子。
lresultcallnexthookex(hhookhhk,intncode,wparamwparam,lparamlparam);
函數說明:函數將消息向下傳遞,下一個鉤子處理將截獲這一消息。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“windows鉤子實現參數有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。