SetWindowsHookEx设置全局钩子
用途
该函数可以在R3下钩子,可监控键盘、鼠标、窗口等各种消息。监控到后调用指定的回调函数。
函数原型
HHOOK WINAPI SetWindowsHookEx(
__in int idHook, \钩子类型
__in HOOKPROC lpfn, \回调函数地址
__in HINSTANCE hMod, \包含函数的实例句柄,GetModuleHandleW(0)即可。
__in DWORD dwThreadId); \线程ID,如果为0,则监控所有线程的全局钩子
钩子类型
WH_KEYBOARD_LL:低级键盘钩子
WH_MOUSE_LL:低级鼠标钩子
规范
下钩子后会在钩子链表的前段插入新下的钩子,即先执行最新的钩子。处理完消息后要使用CallNextHookEx继续传递消息,或者返回TRUE丢弃该消息来阻止传递。
BOOL UnhookWindowsHookEx( HHOOK hhk)函数可用来卸载钩子,参数为该函数返回的句柄。
LRESULT WINAPI MyHookProc(int nCode,WPARAM wParam,LPARAM lParam) 为回掉函数原型。
参数wParam和 lParam包含所钩消息的信息,比如鼠标位置、状态,键盘按键值等。(lParam->vkCode存放键盘按键信息,wParam存放鼠标按键信息)
参数nCode包含有关消息本身的信息,比如是否从消息队列中移出。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Windows 全局钩子 Hook 详解
- 下一篇: windows 全局hook