玩魔兽RPG,要一直按着ALT显血,我想写这个程序一直按着。
void CALTDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//GetParent()->SendMessage(WM_SYSKEYDOWN,VK_MENU,0);
keybd_event(VK_MENU,MapVirtualKey(VK_MENU,0),KEYEVENTF_EXTENDEDKEY   |   0,  0   );  
[code=C/C++]
void CALTDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
keybd_event(VK_MENU,MapVirtualKey(VK_MENU,0),KEYEVENTF_EXTENDEDKEY   |  KEYEVENTF_KEYUP,  0   );
}
[/code]这么写了,好象只对当前程序有用,用了魔兽RPG还是不行。顾来论坛找大侠门帮忙!谢谢啦~~~

解决方案 »

  1.   


    void CALTDlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    //GetParent()->SendMessage(WM_SYSKEYDOWN,VK_MENU,0);
    keybd_event(VK_MENU,MapVirtualKey(VK_MENU,0),KEYEVENTF_EXTENDEDKEY   |   0,  0   );  

    }
    void CALTDlg::OnBnClickedButton2()
    {
    // TODO: 在此添加控件通知处理程序代码
    keybd_event(VK_MENU,MapVirtualKey(VK_MENU,0),KEYEVENTF_EXTENDEDKEY   |  KEYEVENTF_KEYUP,  0   );
    }
      

  2.   

    看看这个可以不1 楼imquestion(古时候,有个人叫范蠡...)回复于 2002-04-21 16:22:53 得分 80keybd_event(VK_MENU,0,0,0);     
      就模拟按下,   
      只要你不keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);   
      就等于一直按下。   
      想不按了就keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
      

  3.   

    keybd_event(VK_MENU,0,0,0);就模拟按下,  
    只要你不keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);就等于一直按下。  
    想不按了就keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0); 
      

  4.   

    用系统的粘滞键功能——连按5次Shift键,会弹出一个对话框,选择“确定”,再连按两次Alt键,之后就相当于Alt一直被按着的状态。
      

  5.   

    太多原因啦,有可能人家HOOK API啦,你得到的窗口句柄都不是游戏的?