挂接全局键盘钩子,钩子回调函数使用SendMessage函数向主调用窗口发送钩到的键盘消息。再由主窗口进行处理。
   我发现了一个很奇怪的现象,那就是全局键盘钩子方法无法获取一些网络游戏的帐号和密码(这倒使我很高兴)。但是 如果在钩子回调函数中,最后我不调用CallNextHookEx函数,直接return true;
却可以屏蔽键盘输入,网络游戏的帐号和密码也无法输入。不知道背后的实现原理是什么。
   我没有其他什么意思,我知道如果使用直接读取键盘缓冲区的方法,还是可以获取完全的键盘输入
有没有哪位大侠能讲述下背后的实现原理,小弟第一次在CSDN提问,一定不会吝惜分的。
   最后我还想问大家用VC6。0还是.NET啊,我还在用6。0,但是有人说。NET比较好

解决方案 »

  1.   

    大家可以在这里探讨一下 反APIHOOK 的方法 呵呵
      

  2.   

    “最后我还想问大家用VC6。0还是.NET啊,我还在用6。0,但是有人说。NET比较好”这个其实不一定,我还在用VC6呢嘻嘻 加上最新的SDK什么都能用
      

  3.   

    为什么没人呢,在这里讨论下反APIHOOK的方法吧 呵呵 最近在深入学习汇编,有点痛苦-_-
      

  4.   

    "很奇怪的现象"有什么奇怪的,直接return TRUE当然把所有的键盘消息都给扔了.
      

  5.   

    但是你用钩子钩不到密码和帐号,我想可能是通过HOOK CallNextHookEx 这个函数做到的
    另外网易的密码保护不知道是什么原理,有人能说说吗?
    我想知道如果调用原版的CallNextHookEx 一定不吝惜分的
      

  6.   

    QQ中就有反拦截的钩子QQ2005版和冒险岛的键盘消息用普通键盘钩子可以钩到 我试过的
    但是其他的游戏就不行 而且网易的游戏如果把密码保护打勾的话 安全型相当高 就算直接读取系统核心的键盘缓冲区队列也得不到 不知道怎么回事