关于HOOK,如何通过钩子截获指定窗口的所有消息

如题所述

第1个回答  2013-11-14
这个参数应该是你调用SetWindowsHookEx的DLL的模块实例句柄,它可以经由DllMain入口的第一个参数得到。HHOOK SetWindowsHookEx( int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId);至于SetWindowsHookEx的第四个参数dwThreadId,才是你需要借由窗口句柄得到的窗口线程ID,你可以通过下面的代码获得:DWORD dwThreadID = GetWindowThreadProcessId(hwnd, NULL);选择相应的消息钩子,比如WH_CALLWNDPROC(用来监视窗口过程)、WH_GETMESSAGE(用来监视消息队列的消息)、WH_KEYBOARD(键盘消息)、WH_MOUSE(鼠标消息)等等。本回答被提问者采纳