钩子函数什么意思?
为什么截获系统消息要用它?
用什么setwindowshookex()(好象是这样吧?)
我直接作个消息映射函数 定义他的消息ID为系统的消息ID 这不就截获了系统消息

解决方案 »

  1.   

    理论:
      WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时,WINDOWS都将调用该函数。一共有两种类型的钩子:局部的和远程的。 
      局部钩子仅钩挂您自己进程的事件。 
      远程的钩子还可以将钩挂其它进程发生的事件。远程的钩子又有两种: 
      基于线程的 它将捕获其它进程中某一特定线程的事件。简言之,就是可以用来观察其它进程中的某一特定线程将发生的事件。 
      系统范围的 将捕捉系统中所有进程将发生的事件消息。 http://www.study51.com/view.asp?TuId=17&ChId=107
      

  2.   

    钩子是Microsoft Windows消息处理机构中的一部分,通过钩子应用程序可以安装一个子程序来监视系统中消息的往来,还能在消息到达目的窗口过程之前处理某种类型的消息。
    钩子有可能减低系统性能,因为他们增加了系统位每一条消息进行处理的总量,开发人员应该只在需要的时候才使用钩子,并尽快删除掉。
    钩子过程可以是全局的,用于监视系统中所有线程的消息;也可以是特定线程的,只为某个线程监视消息。
      

  3.   

    顺便问个问题,我在程序中调用DLL的函数,该函数是返回当时的鼠标坐标,因此我在DLLMAIN中挂了个鼠标钩子,但试了半天,发觉钩子没有挂上,问题出在哪里啊?
    如果要在c中调用这个函数,dll该怎么写?
    我用的软件(基于c)调用DLL函数是如下形式:
    #PRAGMA CODE(“*。DLL”)
    INT F(X);
    #PRAGMA CODE()
    F(A);
    这根本没有什么连接方式啊。