我现在在做一个小项目,主要功能是获取操作和各种事件.主程序采用.Net,使用win32的dll来实现WH_CALLWNDPROCRET,WH_GETMESSAGE,WH_CBT,SetWinEventHook全局的消息事件HOOK. 现在遇到的问题是获取信息基本正常,但是会导致QQ2008无规律的自动退出,有时QQ会提示内存错误,有时根本不提示QQ就退出了,大家来分析下可能存在的问题,谢谢!

解决方案 »

  1.   

    QQ 2009 SP6 都有了,我觉得楼主该换版本了虽然不懂楼主在说什么
      

  2.   

    to:xinloveminnie
    用户的版本是我不能决定的.
    to:dylike
    我的功能只是获取信息,并未更改任何东西.最想知道的是为什么HOOK之后,造成QQ内存错误.假定QQ做了消息和API函数拦截,那么我的操作导致QQ自身错误的问题在哪?HOOK实现有什么需要注意的问题
      

  3.   

    QQ本身对HOOK也做了一些屏蔽.这会导致你的软件跟QQ冲突.
      

  4.   

    是否是系统导致的QQ关闭
    其他版本QQ是否存在同样问题
      

  5.   

    可以确定的情况是:1 确实为软件造成的QQ退出. 2.QQ 2008无论原版,修改版都存在同样的退出问题. 3.win32的dll存在上述的消息HOOK和一个API HOOK.想明确的问题:1.消息HOOK是否会导致被HOOK的程序出现内存错误.假如会,那么应该如何避免
    2.API的HOOk,这个功能已经成功实现,应该可以排除QQ屏蔽问题.问题1如果排除,那么这个问题又该如何考虑呢?
      

  6.   

    有没有执行CallNextHookEx
    把消息传下去 导致你屏蔽了QQ必须要截获的消息
      

  7.   

    额,LZ可以装下QQ2009试试,我估计2009的也是一样的会有退出
      

  8.   

    简单来说  qq 他也hook。
      

  9.   

    分析重点在于HOOK代码如何处理注意哪些问题,才能与被HOOK程序安全稳定的运行 和.谐相处.在论坛也搜索出一些资料,比如HOOK过程避免出现SendMessage之类.希望大家从这个方向讨论,没有看到合适答案,暂时不结贴
      

  10.   


    你这个问题我刚刚想着。我不知道不同程序中的 hook 有没优先级之分。如果说没有,那要是QQ也hook 截取了某一消息处理,也和你要处理的消息一样。那这个hook 他先处理那个先?可能冲突就在这
      

  11.   

    大家继续讨论啊~,停掉了一个API HOOK.QQ2008依然有问题.另外QQ2009没有错误