windows下怎样发送消息模拟鼠标点击

zhangxfeng112 2010-01-03 05:32:35
我只会mouse_event那种,但是跟我预期的效果不一样。
我想要的是:
比如,我想点窗口A中的一个按钮,在窗口A最小化的时候,给A发一个消息什么的,让它响应在按钮上有一个鼠标点击的事件。。。

不知道我的问题描述清楚没有,windows支持这种消息不?
100分,望windows高人赐教。
...全文
829 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2010-01-03
  • 打赏
  • 举报
回复
按键用PostMessage发,键盘是WM_KEYDOWN、WM_KEYUP,鼠标是WM_LBUTTONDOWN、WM_LBUTTONUP等,不过很多时候按键消息不起作用。
zhangxfeng112 2010-01-03
  • 打赏
  • 举报
回复
顺便再问一下,发送按键消息,应该发送什么类型消息,wParam怎么设置?
zhangxfeng112 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cnzdgs 的回复:]
如果你要模拟一个标准按钮的点击,可以事先用SPY++等工具查出按钮ID,在程序中使用FindWindow根据窗口标题和类名找到窗口,再用SendMessage向其发WM_COMMAND消息,wParam参数的低16位给按钮ID,高16位给BN_CLICKED。
对于非标准按钮,此方法未必有效,需要自己分析其消息机制。
[/Quote]
哦,原来如此。。。
cnzdgs 2010-01-03
  • 打赏
  • 举报
回复
如果你要模拟一个标准按钮的点击,可以事先用SPY++等工具查出按钮ID,在程序中使用FindWindow根据窗口标题和类名找到窗口,再用SendMessage向其发WM_COMMAND消息,wParam参数的低16位给按钮ID,高16位给BN_CLICKED。
对于非标准按钮,此方法未必有效,需要自己分析其消息机制。
chenhao1988 2010-01-03
  • 打赏
  • 举报
回复
找到窗口句柄,然后SendMessage或PostMessage。
zhangxfeng112 2010-01-03
  • 打赏
  • 举报
回复
还有就是窗口不论是否位于最顶层,是否有焦点,都能够响应。。
zhangxfeng112 2010-01-03
  • 打赏
  • 举报
回复
楼上,你还是没太明白我的意思。。

窗口是别人写的程序,我没有源代码,只有exe。。我想自己写个程序,跟它通信,给它发送鼠标点击的消息,让它像用户点击一样去响应。。。

不过还是要谢谢你。。呵呵~
flyfranker 2010-01-03
  • 打赏
  • 举报
回复
vc code:
VC的按钮只有两个消息,单击和双击,没有LButtonDown和LButtonUp,那只有先获得按钮的区域了,然后判断鼠标是在哪个按钮的区域中按下的;
获得按钮区域:
CButton m_Button1;
CRect rc;
m_Button1.GetWindowRect(rc);

响应:
void CYourDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//判断鼠标在哪个按钮区域中
if(PtInRect(rc, point))
{

}
CDialog::OnLButtonDown(nFlags, point);

Delphi code: procedure TForm1.Button1Click(Sender: TObject); begin SendMessage(WebBrowser1.Handle,WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(10,10)); SendMessage(WebBrowser1.Handle,WM_LBUTTONUP, MK_LBUTTON, MAKELONG(10,10)); end;

搜索的,希望对你有帮助

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧