不认回车的问题,功德圆满 (200分)

  • 主题发起人 主题发起人 火龙真人
  • 开始时间 开始时间

火龙真人

Unregistered / Unconfirmed
GUEST, unregistred user!
sendmessage(subh,WM_KEYDOWN,VK_return,1); 无效果
POSTMESSAGE一样
WM_KEYDOWN和UP一起来无效. 模拟键盘事件有效但需要焦点
wm_char消息的回车一样无效
subh是QQ聊天室的那个输入框其实是个RICHEDIT
子进程的子进程的....反正我是找对了句柄的
因为已经可以象他发SendMessage(subh, WM_paste, 1, 1);
是没问题的,sendmessage(subh,WM_KEYDOWN,VK_BACK,1);我也试了也没问题
但消息就是发不出去,怪!再不行我就用模拟键盘了

 
sendmessage(subh,WM_KEYDOWN,VK_return,1);
sendmessage(subh,WM_KEYUP,VK_return,1);
试一下。
 
同意 zw84611,你要模拟[red]整个[/red]过程:按下 -> 弹起
 
有的程序可能不响应WM_KEYDOWN,WM_KEYUP消息,但是一定响应wm_char消息,你试试wm_char[:D]
 
已经说过了无效果了.我想过 UP DOWEN一起来过不行
大不了我用POSTKEY不过我句并已经找到了了为什么
对回车无反映
 
首先我就想到的可能不一定是KEYDOWN于是我把 UP也加起无效
然后又想起是不是对其父句并发消息,于是一级一级向上试都不行
真的怪了
 
换个思路,为什么非要模拟键盘,直接设置文本框内容酒行,
SendMessage(hwndwd, WM_SETTEXT, Message, .....
另外键盘消息用
keybd_event
MSDN:
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // function options
ULONG_PTR dwExtraInfo // additional keystroke data
);
 
keybd_event
确实是可以keybd_event(VK_return,1,0,0)
但是就不能只对那个进程发了啊,如果焦点
不在那里他也会发回车的.不是很好的方法啊
 
我想是这样的,焦点问题,你试试这样:
sendmessage(subh,WM_KEYDOWN,VK_return,1);
sendmessage(subh,WM_KEYDOWN,VK_return,1); //两个keydown
sendmessage(subh,WM_KEYUP,VK_return,1);
 
PostMessage恐怕能成功………
 
PostMessage最早就实验过不行
叶不归, 直接向句柄发消息与焦点没关系的
 
To 火龙真人
你的操作系统不是win2000吧
是win98吧











 
SendMessage(hwndwd, WM_SETTEXT, Message
之后,焦点应该已经到那里了,(我记得应该是)
再送keybd_event
 
你的消息是发过去了,但是它并不做处理
因为当你按回车的时候,是由窗口处理的,
不信你看看 登录 的样子就知道了,它就是 OK,也是默认的
哈哈
 
sendmessage(h,WM_LBUTTONDOWN,1,1);
sendmessage(h,WM_LBUTTONup,1,1);

h - 登录 按钮的句柄
 
可惜聊天室没发送这个按钮,还有说是窗体处理的我也先前实验过了
我对他的父进程发了消息的没用,
 
但是回车发给 编辑框 肯定没用,因为大多数程序不会在这里处理的
说说你在哪里用,我帮你看看
 
就是QQ聊天室里的输入框啊,那其实是个RICHEDIT
不过我们在实际聊天中确实又是用回车发送的啊
 
后退
顶部