判断接收到的是否为A键,如果是,则将消息参数改为B键值。
调用CallNextHookEx(hhook, wParam, lParam)

解决方案 »

  1.   

    如果不是全局的可以不用 钩子,在 PreTranslateMessage里改动就行了
      

  2.   

    dylanwolf和chzy00的方法不行,我试过了。 delphihero(阿蒙)你自己做过吗?
    我想要的是成功的例子,是做出来的,而不是想出来的。
      

  3.   

    xpf_2000(萧丰) ::
       我的钩子函数收到消息后什么也不做,连CallNextHookEx也不调,可是还是没用?
      

  4.   

    是可以的.我这有个例子是实现这样的功能的.程序运行时,在当前运行的编辑窗口中,按下"-'时,会显示"_",而按下"-"和shift时,则会显示"-"
      

  5.   

    你仔细看看,钩子函数本身就有不向下传递消息的功能。你是没掉用CallNextHookEx(),但是你还需要返回一个TRUE,来丢弃该消息。
      

  6.   

    理论上是可以用键盘钩子实现的。接受到A的消息,修改lParam的扫描码值,至于什么都不作不成功,我赞同楼上老兄的观点,需要return TRUE; 我昨天写了一个这样的例子,专门试验了一把的!!
      

  7.   

    噢,忘了,修改过lParam的值以后,要调用CallNextHookEx()来传递消息。疯言风雨,分吹傻。。
      

  8.   

    谢谢大家的讨论,但像toxyboy(胡言乱语)的方法我也试过,但当我安装钩子后打开记事本,试了一下输入几个字母,并不能达到效果。如果return true;则什么都得不到。这是不是还要涉及到参数ncode的处理呀?
      

  9.   

    http://go5.163.com/nowcan/miscs.htm
    最后那个Am I a fool?是不是你要得效果?
      

  10.   

    你是说WH_GETMESSAGE吗?它怎么用?
    Lparam和Wparam是怎么用的?
    顺便问一下,谁知道所有钩子的使用方法在哪里可以下载?