相关疑难解决方法(0)

如何正确使用SetWindowsHookEx和CallNextHookEx

我可以正确设置一个Windows挂钩,但我对MSDN中的行"混淆"说"调用CallNextHookEx函数链接到下一个挂钩程序是可选的,但强烈建议;否则,其他已安装挂钩的应用程序将没有收到钩子通知,结果可能表现不正确.你应该调用CallNextHookEx,除非你绝对需要阻止其他应用程序看到通知."

我想成为一个优秀的编程公民并打电话给下一个钩子.但是,我的钩子程序看起来像这样:

LRESULT CALLBACK CBTProc(int code, WPARAM wp, LPARAM lp)
{
    if (code != HCBT_CREATEWND)
        {
                // What do I do here? It's not the event I requested so how do I pass it on?
        return 0;
    }

    // It's the code we want (create window)
        CallNextHookEx(...);
        ...
}
Run Code Online (Sandbox Code Playgroud)

那么,如果代码不是我感兴趣的代码,那么钩子程序会发生什么?我怎么称呼下一个钩子?

编辑:主要问题是从SetWindowsHookEx返回一个HHOOK,需要将其传递给CallNextHookEx函数.

更新:似乎在NT平台上忽略了hook参数:
http://msdn.microsoft.com/en-us/library/ms644974.aspx
http://www.klenotic.com/pl/null_hhook/

windows hook winapi

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

hook ×1

winapi ×1

windows ×1