鉤子
(hook)
,是windows
訊息處理機制的乙個平台
,應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理
window
訊息或特定事件。
關於hook的詳細介紹,在微軟的msdn中有,
enum hooktype //列舉,鉤子的型別
;
intptr _nexthookptr;
//記錄hook編號
3、在form1中引入必須的api
[dllimport("kernel32.dll")]
static
extern
int getcurrentthreadid(); //取得當前執行緒編號的api
[dllimport("user32.dll")]
internal
extern
static
void unhookwindowshookex(intptr handle); //取消hook的api
[dllimport("user32.dll")]
internal
extern
static intptr setwindowshookex(int idhook, [marshalas(unmanagedtype.functionptr)] hookproc lpfn, intptr hinstance, int threadid); //設定hook的api
[dllimport("user32.dll")]
internal
extern
static intptr callnexthookex(intptr handle, int code, intptr wparam, intptr lparam);
//取得下乙個hook的api
4、宣告乙個實現的委託
internal delegate intptr hookproc(int code, intptr wparam, intptr lparam);
5、新增自己的hook處理過程
intptr myhookproc(int code, intptr wparam, intptr lparam)
else
}6、新增加入hook鏈和從hook鏈中取消的函式
public
void sethook()
public
void unhook()
}7、在form1的load事件中新增 sethook() , 在form1的closing 事件中新增 unhook()
private
void
form1_load(
object
sender, system.eventargs e)
private
void
form1_closing(
object
sender, system.***ponentmodel.canceleventargs e)
8、執行
輸入 b , 發現 textbox 裡面顯示的是 a 了!
C 中來應用Hook
鉤子 hook 是windows訊息處理機制的乙個平台,應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理window訊息或特定事件。關於hook的詳細介紹,在微軟的msdn中有,htt...
引用 C 中來應用Hook
鉤子 hook 是windows訊息處理機制的乙個平台,應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理window訊息或特定事件。關於hook的詳細介紹,在微軟的msdn中有,htt...
在C 中應用HOOK
鉤子 hook 是windows 訊息處理機制的乙個平台 應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理 window 訊息或特定事件。關於hook的詳細介紹,在微軟的msdn中有,...