SetWindowsHookEx设置全局钩子

来源:互联网 发布:百科门窗软件下载 编辑:程序博客网 时间:2024/06/05 14:31

用途

该函数可以在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包含有关消息本身的信息,比如是否从消息队列中移出。

0 0