日期:2014-05-17  浏览次数:21070 次

windows下怎样发送消息模拟鼠标点击
我只会mouse_event那种,但是跟我预期的效果不一样。
我想要的是:
比如,我想点窗口A中的一个按钮,在窗口A最小化的时候,给A发一个消息什么的,让它响应在按钮上有一个鼠标点击的事件。。。

不知道我的问题描述清楚没有,windows支持这种消息不?
100分,望windows高人赐教。

------解决方案--------------------
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; 

搜索的,希望对你有帮助
------解决方案--------------------
找到窗口句柄,然后SendMessage或PostMessage。
------解决方案--------------------
如果你要模拟一个标准按钮的点击,可以事先用SPY++等工具查出按钮ID,在程序中使用FindWindow根据窗口标题和类名找到窗口,再用SendMessage向其发WM_COMMAND消息,wParam参数的低16位给按钮ID,高16位给BN_CLICKED。
对于非标准按钮,此方法未必有效,需要自己分析其消息机制。