WH_GETMESSAGE 
 怎么得到当前的消息的消息类型,以及消息中包含的参数。如果我要把WM_LBUTTONDOWN截获并修改成VK_A怎么做。

解决方案 »

  1.   

    参考MSDN98中自带的SPY++源代码片断?
    MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix,  MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl
      

  2.   


    LRESULT CALLBACK GetMsgProc( int nCode, WPARAM wParam, LPARAM lParam )
    {
           ...
           if( WM_LBUTTONDOWN==  ((MSG*)lParam)->message)
           {
                  ((MSG*)lParam)->message = WM_KEYDOWN;
                  ((MSG*)lParam)->wParam   = 0x41 //A key
           }
           ...
           return CallNextHookEx(...);      
    }
      

  3.   

     谢谢! 但是我还有个问题
    第一个是spy++显示的窗体消息,第一个是我手动按下A键显示的消息,下面两个一个是sendmessage发送的消息,一个是修改后发过去的消息。 如果是在输入框三个都能生效,但是如果是程序快捷按钮则只有自己手动按下的会生效,其他两个无反应。请问这是为什么。SPY++里面cRepeat scanfcode以及后面那几个参数是什么意思在哪改?
      

  4.   

    VS IDE中,在不明白的符号上点鼠标右键,选转到定义或查找所有引用。
      

  5.   

    使用钩子拦截鼠标消息,收到鼠标消息后,将当前消息拦截,发送一个VK_A消息。还要看你是拦截全局的还是拦截程序内部的。