最近工作需要 需要截取用户输入的关键词进行查询操作
使用到全局键盘钩子WH_KEYBOARD_LL
但总是使用一段时间过后 就自动脱钩了
我将回调里面的程序改为只向文件里记录虚拟键值
使用一段时间过后 记录终止 调试的时候没有出现过这个问题
不知道是为何 望解答。

解决方案 »

  1.   

    感觉不是自动脱钩,是有的程序把你的DLL脱掉。
      

  2.   

    做个测试程序,在“脱钩”后通过这个测试程序来调试DLL,在DLLMain和Hook函数上设置断点,看看能否执行到。
      

  3.   

    我没有使用dll
    我的SetWindowsHookEx WH_KEYBOARD_LL ..0
    以及回调函数都写在本exe里面必须要写成DLL形式么?
      

  4.   

    全局钩子,最好做成DLL方式来加载等...
      

  5.   

    普通的键盘全局钩子,必须用Dll的!如果是键盘低级钩子,就不一定要用dll了,你是键盘普通钩子,不用dll的Hook住,肯定是临时的,属于线程的效用范围
      

  6.   

    如果要Hook所有进程,必须用DLL,如果只Hook本进程,用EXE就可以。