zoukankan      html  css  js  c++  java
  • VC底层钩子程序在Win7/Vista下无效

    Win7移除超时的钩子不是bug,而是win7中为了保护系统而故意的行为,因为安装了全局钩子后,所以消息都要经过这个钩子,并且等待钩子过程执行结束或者钩子达到超时时间才能处理其他的响应,严重影响性能。
    其实在vista中已经加入了一些保护措施,但不是很充分,所以在win7加入了当底层钩子多次超时时,就由系统自动卸载掉该钩子。

    所以,原因清楚了,方案有两个。
    1.在win7系统中加入LowLevelHooksTimeout时间,如[HKEY_CURRENT_USERControl PanelDesktop]"LowLevelHooksTimeout"=dword:00002710
    2.在安装钩子尽量在一个独立的线程中进行,并且钩子处理过程尽量用较短的时间,其他任何较长时间的处理都放在别的线程中异步处理。(尽量不要写花时间的hook代码)

  • 相关阅读:
    小学四则算式扩充
    软件工程初涉之感
    回头
    个人最终总结
    团队作业
    结对编程
    老李的blog使用日记(3)
    进度
    老李的blog使用日记(2)
    红果果
  • 原文地址:https://www.cnblogs.com/shuang0109/p/8881413.html
Copyright © 2011-2022 走看看