注册 登录
编程论坛 C++教室

c++中如何向指定的窗口发送ALT+X 消息

wgb0001 发布于 2006-05-18 23:27, 6447 次点击

我说明一下 我的目的窗口是一个游戏, 该游戏能响应ALT+A,并做出反应我现在的程序只要向该游戏窗口发送一个ALT+A的按键消息就行了~~~~~` 我用了上述的方法,可是还不能成功?我都不知道为什么了

A:用这个好像不能指定到那个窗口

keybd_event(VK_MENU, MapVirtualKey(VK_MENU,0),0,0);

keybd_event(120, MapVirtualKey(120,0),0,0);

keybd_event(120, MapVirtualKey(120,0),KEYEVENTF_KEYUP,0);

keybd_event(VK_MENU, MapVirtualKey(VK_MENU,0),KEYEVENTF_KEYUP,0);

B: 用这个好像又不行:

::SendMessage(m_jxhwnd,WM_KEYDOWN,(WPARAM)VK_MENU,0);

::SendMessage(m_jxhwnd,WM_KEYDOWN,(WPARAM)0x78,0);

::SendMessage(m_jxhwnd,WM_KEYUP,(WPARAM)0x78,0);

::SendMessage(m_jxhwnd,WM_KEYUP,(WPARAM)VK_MENU,0);

到底要怎么做,求教,谢谢谢谢~~~

我的信箱是wgb0001@163.com,请各位大哥哥帮帮小弟,不胜感激!!!

16 回复
#2
c1201102006-05-18 23:55

有点没看懂....
是说当按下alt+a的时候向目标窗口发送一条alt+a被按下的消息吗???
那你首先要自定义一个消息,在alt+a这个事件被触发的时候在发送就行了吧..

#3
Knocker2006-05-19 10:29
用方法A应该让m_jxhwnd窗口置最顶端
用方法B m_jxhwnd 是否确认?

一般来说两者都行
#4
wgb00012006-05-19 20:26
非常感谢大家在我问题后的跟贴,我想要知道的是如何用PostMessage()函数发送组合键消息,例如:发送ALT+A
#5
Knocker2006-05-19 20:36
PostMessage 和SendMessage的区别主要在于是否等待其他程序消息处理。PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行
#6
Knocker2006-05-19 20:40
还有一点,我觉得你先用word或者Edit之类的文本编辑软件来测试你的代码.
不一定你的代码错,而游戏窗口在消息处理上做了手脚 :)
#7
wgb00012006-05-19 20:41
大哥,你不要答非所问好不好,我问的问题是:已知窗口句柄,如何用PostMessage()函数发送组合键消息,例如:发送ALT+A
#8
Knocker2006-05-19 20:46

[QUOTE]::SendMessage(m_jxhwnd,WM_KEYDOWN,(WPARAM)VK_MENU,0);
::SendMessage(m_jxhwnd,WM_KEYDOWN,(WPARAM)0x78,0);
::SendMessage(m_jxhwnd,WM_KEYUP,(WPARAM)0x78,0);
::SendMessage(m_jxhwnd,WM_KEYUP,(WPARAM)VK_MENU,0); [/QUOTE]


既然说区别,那么剩下的都是相同的

,(WPARAM)VK_MENU//确认一下这是不是 Alt,俺觉应该是VK_ALT :)
WPARAM)0x78,//确认一下这是不是 A

对不起,俺用BCB对这个VC的不熟悉 :)

#9
wgb00012006-05-19 20:53

非常感谢你,大哥,我先试一下管不管用,能否告诉我你的QQ,谢谢!!!

#10
wgb00012006-05-19 21:41
还是不能用呀
#11
Knocker2006-05-20 08:58
以下是引用wgb0001在2006-5-19 21:41:00的发言:
还是不能用呀

只有本站会员才能查看附件,请 登录

GetALT_A.exe //此程序memo接收ALT+A会弹一警示窗口
SendALT_A.exe//此程序模拟ALT+A

既然是讨教就该虚心,仔细看别人的回贴 :)
#12
wgb00012006-05-20 19:44
  Knocker大哥,你所发程序正是小弟所需,您能否将程序源代码传送来,让小弟一睹为快!!!谢谢!!!
  又及:小弟QQ号为342174248!
#13
babyboybao2007-08-25 11:15

Knocker大哥 这个东西我也正在找 代码能发我学习学习吗 期盼!! 信箱 suguowencui@126.com

#14
rook22009-09-22 11:41
郁闷 不放源码
怎么不把代码贴出来呀
#15
ts010012011-10-28 16:27
虽然是老问题,可是还是弄不懂,希望解答一下哦~
#16
richardw2014-09-07 16:28
Knocker老大,现在碰上了同样的问题,给后台的窗口发Alt+X发不过去(前台的已经成功了),能否给点指点呀?
#17
richardw2014-09-07 16:31
另外你那个例子是把目标窗体置前了吧,有没有不置前就能发送的方法呀?
1