mfc中模拟键盘控制游戏中的人物动作 15

if(strtemp=="s"){CWnd*pwnd=FindWindow("MARIO01","加油中国,自强不息!");//希望找到资源管理器if(pwnd->Get... if(strtemp=="s")
{
CWnd *pwnd = FindWindow("MARIO01","加油中国,自强不息!"); //希望找到资源管理器

if(pwnd->GetSafeHwnd())
{
pwnd->ShowWindow(SW_NORMAL);
pwnd->SetForegroundWindow();

keybd_event(90,MapVirtualKey(90,0),0,0);
keybd_event(90,MapVirtualKey(90,0),KEYEVENTF_KEYUP,0);
}
这段代码是 当接收到S,模拟键盘上的Z键,游戏人物发射炮弹。但实际中,人物没有任何反应,但是在txt文档中可以不断输出z。同时,如果去掉keybd_event(90,MapVirtualKey(90,0),KEYEVENTF_KEYUP,0); 这一句,游戏中的人物可以连续不断的发射炮弹。这就是说,可以模拟按键一直按下去不动,但是模拟不了按键按一下。还有的说用postmessage,但是在mfc中postmessage只有三个参数,没有第一个句柄的参数,所以我无法指定游戏窗口为当前窗口,无法实现对游戏人物的控制。研究了很久也不知道怎么回事!!求解答!!!现在财富值就有15,麻烦懂的人给解答一下!!
展开
 我来答
匿名用户
2014-10-03
展开全部
keybd_event(90,MapVirtualKey(90,0),0,0);
keybd_event(90,MapVirtualKey(90,0),KEYEVENTF_KEYUP,0);
这两句中间加Sleep.....
追问
加过 也没有用 要sleep多少呢,有时候sleep多了还会出现错乱的现象
追答
一般20-200效果比较好...

keybd_event(90,MapVirtualKey(90,0),0,0);
keybd_event(90,MapVirtualKey(90,0),KEYEVENTF_KEYUP,0);
Sleep(20);


建议用SendInput()进行鼠标键盘模拟...;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式