初識了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就可以,可能是忽略這個引數了吧.第四個引數是當前...