如题

解决方案 »

  1.   

    再说一下,将钩子函数建立在DLL中和原程序中的区别是什么
      

  2.   

    钩子只有全局钩子和局部钩子之分,好像没什么远程钩子吧,全局钩子必须放在DLL中,因为DLL能够被注入到其它EXE文件中,对其它程序起作用.如果钩子不建立在DLL中,只能在这个程序自身起作用
      

  3.   

    举个例子如果是局部钩子  那么某些的功能只是限定你的程序 例如 用一个键盘钩子 return 1  那么你的程序里 键盘没有反应如果是全局钩子 也是键盘钩子  那么你的整个系统都不会对你的键盘输入有反应
      

  4.   

    钩子分为线程钩子和全局钩子,线程钩子只对本线程有效,而全局钩子对整个系统下的所有程序都有效,不过全局钩子必须写在dll里面,因为要对系统里别的程序起作用必须先将全局钩子的dll注入到其他进程的空间,当然这个注入的事,系统就帮你干了