LRESULT keyProc(,,,)
{
   if(nCode == HC_ACTION)
   {
    if(wParam != NULL) // 说明有键盘消息进入
    {
       //work();//我该怎么处理才能把这个消息丢出系统消息队列而不
                让系统响应呢??
       return 1;
    }
   }
 }

解决方案 »

  1.   

    楼上老胸,那样还是不行,return 1;只代表钩子钩到这个消息不处理,但是消息还是会回到系统队列里面啊!!??
      

  2.   

    return 1结束消息处理
    return CallNextHookEx(...)才继续传递消息的。
      

  3.   

    同意楼上的,用return 1返回结束消息的传递应该可以啊
      

  4.   

    钩子使用指南  钩子的概念
      钩子机制允许应用程序截获处理window消息或特定事件。与DOS中断截获处理机制有类似之处。钩子(Hook),是Windows消息处理机制的一个平台(point),应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。每一个hook都有一个与之相关联的指针列表,称之为钩子链表,该链表中的指针指向这个钩子的各个处理子程。一个钩子处理一种类型的消息。当钩子所监视的消息出现时,Windows调用链表中的第一个钩子子程。某些类型的钩子只能在系统范围内设置处理子程,其余类型的钩子还可以在特定的线程中设置(用SetWindowsHookEx设置)。对于某一特定类型的钩子(它处理某一类型的消息),线程钩子子程被先调用,接着是系统钩子子程。钩子子程是一个应用程序定义的回调函数(callback function),不能定义成某个类的成员函数,只能定义为普通的C函数。例如:
      LRESULT CALLBACK HookProc(int nCode ,WPARAM wParam,LPARAM lParam)
    钩子的设置
      可以使用API函数SetWindowsHookEx()把一个全文参见:http://vcworm.51.net/other/hook.htm
      

  5.   

    对不起,楼上各位,俺的失误,return 1,是可以结束消息处理的!
    那还有其它热健的锁定方法,大家有何观点,何不一起讨论讨论???疯子拜读。
      

  6.   

    LRESULT keyProc(,,,)
    {
    return 1;
    }
    mouse is the same as the up