HOOK(鉤子)函數

來源:互聯網
上載者:User

標籤:調用   類型   連結   msu   bug   狀態   子函數   遠程   鍵盤按鍵   

安裝、卸載鉤子的相關函數

鉤子類型 按功能分:

1、WH_CALLWNDPROC和WH_CALLWNDPROCRET:使你可以監視發送到視窗過程的訊息
3、WH_DEBUG    調試鉤子
4、WH_FOREGROUNDIDLE   當應用程式的前台線程大概要變成空閑狀態時,系統就會調用WH_FOREGROUNDIDLE

5、WH_JOURNALRECORD   監視和記錄輸入事件
6、WH_JOURNALPLAYBACK   回放用WH_JOURNALRECORD記錄事件
7、WH_KEYBOARD    鍵盤鉤子
9、WH_KEYBOARD_LL   低層鍵盤鉤子
10、WH_MOUSE    滑鼠鉤子
11、WH_MOUSE_LL    底層滑鼠鉤子
12、WH_SHELL    外殼鉤子
13、WH_MSGFILTER 和WH_SYSMSGFILTER  使我們可以監視菜單,捲軸,訊息框等

 

鉤子的作用範圍 
++++++++++++++++  
  一共有兩種範圍(類型)的鉤子:局部的和遠端。 
一、局部鉤子僅鉤掛您自己進程的事件。 
二、遠端鉤子還可以將鉤掛其它進程發生的事件。 
遠端鉤子又有兩種: 
1、基於線程的 它將捕獲其它進程中某一特定線程的事件。簡言之,就是可 
以用來觀察其它進程中的某一特定線程將發生的事件。 
2、系統範圍的 將捕捉系統中所有進程將發生的事件訊息。 

 

安裝鉤子:

實現Win32的系統鉤子,必須調用SDK中的API函數SetWindowsHookEx來安裝這個鉤子函數,這個函數的原型是  HHOOK SetWindowsHookEx( int idHook,HOOKPROC lpfn, INSTANCE hMod,DWORDdwThreadId )  第一個參數:idHook表示鉤子類型,它是和鉤子函數類型一一對應的。如,WH_KEYBOARD,WH_MOUSE。  第二個參數:Lpfn是鉤子函數的地址。  第三個參數:HMod是鉤子函數所在的執行個體的控制代碼。對於線程鉤子,該參數為NULL;對於系統鉤子,該參數為鉤子函數所在的DLL控制代碼。 (系統鉤子必須在DLL中)  第四個參數:dwThreadId 指定鉤子所監視的線程的線程號。對於全域鉤子,該參數為NULL。其中,全域鉤子函數必須包含在DLL(動態連結程式庫)中,而線程專用鉤子還可以包含在可執行檔中。得到控制權的鉤子函數在完成對訊息的處理後,如果想要該訊息繼續傳遞,那麼它必須調用另外一個SDK中的API函數CallNextHookEx()來傳遞它。鉤子函數也可以通過直接返回TRUE來丟棄該訊息,並阻止該訊息的傳遞。  執行SetWindowsHookEx(),會返回所安裝的鉤子控制代碼。

卸載鉤子

   調用函數 BOOL UnhookWindowsHookEx( HHOOK hhk)卸載鉤子,其參數hhk就是執行SetWindowsHookEx()後返回的所安裝的鉤子的控制代碼。

鉤子[回調]函數

  鉤子函數是一種特殊的回呼函數。鉤子監視的特定事件發生後,比如監聽鍵盤的事件,系統會調用鉤子函數進行處理。一般為下:   LRESULT WINAPI MyHookProc(int nCode,WPARAM wParam,LPARAM lParam)   參數wParam和 lParam包含所鉤訊息的資訊,比如滑鼠位置、狀態,鍵盤按索引值等。nCode包含有關訊息本身的資訊,比如是否從訊息佇列中移出。

 註:回呼函數就是一個通過函數指標調用的函數。如果你把函數的指標(地址)作為參數傳遞給另一個函數,當這個指標被用來調用其所指向的函數時,我們就說這是回呼函數。回呼函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用於對該事件或條件進行響應。

 

 

 

 

HOOK(鉤子)函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.