我试图将一个Windows钩子添加到钩子链,并想知道它何时被添加?
我按此顺序执行操作:
有没有办法触发添加钩子回调到窗口回调链而不使窗口成为前景窗口?
谢谢!
据我所知,在调用SetWindowsHookEx
期间,钩子被添加到钩子链中。 DLL不一定立即加载 - 操作系统决定何时加载。钩本身显然只在调用钩链时调用,这取决于钩子。如果你挂钩WH_CALLWNDPROC
并且直到某个点没有调用你的回调,那意味着没有任何消息要挂钩。因此,如果您只想拦截消息,则没有问题。如果您确实认为有问题,请提供更多信息。
实际上,有一些触发因素。
如果挂钩的类型是WH_GETMESSAGE
,则可以执行PostMessage(HWND_BROADCAST...
调用以强制任何GUI进程使用挂钩过程加载dll。
对于其他类型的钩子,你可以尝试一下。