初識Windows HOOK 鉤子技術

2021-05-01 01:18:55 字數 1046 閱讀 2639

初識了windows hook ,覺得很有趣 我們可以用來鉤子來獲得和遮蔽一些訊息

下面是一些建立和使用鉤子的一下函式

庫中的匯出函式

引數三:程式例項(最後乙個引數為0[為0說明要捕獲所有程式的id] 或者為其他程式的訊息 )這個引數為dll的例項控制代碼

引數四:指定要捕獲訊息的執行緒id 為0則捕獲所有程式的訊息

程式成功返回鉤子的控制代碼 失敗返回null

下面是乙個簡單的獲取當前程式訊息的鉤子示例:

獲得滑鼠訊息

hhook m_hmouse;

m_hmouse=setwindowshookex(wh_mouse,mouseproc,null,getcurrentthreadid());//設定本程式滑鼠鉤子 最後1個引數為 

當前程式的執行緒id 

//滑鼠訊息處理程式

lresult callback mouseproc(

int ncode,      // hook code

wparam wparam,  // message identifier

lparam lparam   // mouse coordinates

)獲得鍵盤訊息

hhook m_hkeyboard;

hwnd g_hwnd;//獲得視窗控制代碼

g_hwnd=m_hwnd;//在mfc程式內部呼叫

m_hkeyboard=setwindowshookex(wh_keyboard,keyboardproc,null,getcurrentthreadid());//設定本程式滑鼠鉤子 最後 

1個引數為當前程式的執行緒id 

lresult callback keyboardproc(

int code,       // hook code

wparam wparam,  // virtual-key code

lparam lparam   // keystroke-message information

)return 1;

}至於遮蔽所有程式的訊息 詳見資源 windows鉤子簡單實用

最簡單的Windows Hook(鉤子)介紹

hook是windows作業系統的訊息傳遞機制的重要組成部分。通過使用hook,程式可以監視系統中其他程序的訊息傳遞,並在該訊息到達目的前對其進行處理。注意,由於hook可能訪問其他程序的位址空間,故必要時應通過dll實現。並且,全域性hook會降低系統的效能,應該盡量避免使用。windows為不同...

Windows HOOK總結 待完善

安裝鉤子 hhook winapi setwindowshookex 1,鉤子型別 in int idhook,2,函式位址,即掛鉤型別事件發生時,系統應該呼叫的函式 in hookproc lpfn,3,標識乙個dll,這個dll中包含第二個引數表示的函式 例項控制代碼 in hinstance ...

全域性鉤子和區域性鉤子

蒐集了許多的資料,也做了各種嘗試,但是還不是很明白具體的分類.根據目前所掌握的總結一下 區域性鉤子 注意事項 第乙個引數是wh keyboard類似的區域性鉤子引數,第二個是 函式,可以再當前dll exe 中也可以在其他的dll中 第三個引數可設為0就可以,可能是忽略這個引數了吧.第四個引數是當前...