M mt Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-30 #1 我想用编程实现对一个程序的某个坐标点发送鼠标点击事件 但实际并不让鼠标真正动作<br>只是想让那个程序得到在程序上的某个坐标点按过鼠标了<br>不知道应该使用什么函数 或 怎么实现<br>希望大家能给个实例 谢谢大家了
我想用编程实现对一个程序的某个坐标点发送鼠标点击事件 但实际并不让鼠标真正动作<br>只是想让那个程序得到在程序上的某个坐标点按过鼠标了<br>不知道应该使用什么函数 或 怎么实现<br>希望大家能给个实例 谢谢大家了
M mt Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-30 #2 我想用编程实现对一个程序的某个坐标点发送鼠标点击事件 但实际并不让鼠标真正动作<br>只是想让那个程序得到在程序上的某个坐标点按过鼠标了<br>不知道应该使用什么函数 或 怎么实现<br>希望大家能给个实例 谢谢大家了
我想用编程实现对一个程序的某个坐标点发送鼠标点击事件 但实际并不让鼠标真正动作<br>只是想让那个程序得到在程序上的某个坐标点按过鼠标了<br>不知道应该使用什么函数 或 怎么实现<br>希望大家能给个实例 谢谢大家了
L leadyli Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-30 #3 用FindWindow函數先得到目標程序的窗體句柄;然后發送點擊消息。<br>比如:<br>var H: HWND:<br>begin<br> H := FindWindow('TForm1','Form1');<br> if H > 0 then<br> SendMessage(H,WM_LBUTTONDOWN,0,0);<br>end;
用FindWindow函數先得到目標程序的窗體句柄;然后發送點擊消息。<br>比如:<br>var H: HWND:<br>begin<br> H := FindWindow('TForm1','Form1');<br> if H > 0 then<br> SendMessage(H,WM_LBUTTONDOWN,0,0);<br>end;
M mt Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-30 #4 谢谢楼上 我主要是想让另一个程序 接收鼠标点击消息 让它自动运行某个功能<br>也就是在那个程序上模拟点击某几个坐标 但实际真正的鼠标并没有动作
B beyondup Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-01 #5 SetCursorPos(StrToInt(X),StrToInt(Y));//将光标放置在X,Y处<br>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟按下鼠标左键 <br>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模拟 抬起鼠标左键<br>恩 应该差不多了 楼主自己试一下吧 有问题在讨论 呵呵
SetCursorPos(StrToInt(X),StrToInt(Y));//将光标放置在X,Y处<br>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟按下鼠标左键 <br>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模拟 抬起鼠标左键<br>恩 应该差不多了 楼主自己试一下吧 有问题在讨论 呵呵
M mt Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-23 #6 谢谢 楼上 我的意思是 让某个程序执行他的鼠标点击事件但是 真正的鼠标并不动作<br>楼上的 方法鼠标是会动的
B bhcqh Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-23 #7 你在移动之前先把原来的鼠标坐标保存起来,点击完再恢复啊
B bhcqh Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-23 #8 或者找到你要点击的按钮,给它发消息postmessage()WM_MOUSEMOVE,和点击的消息
S someset Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-12 #9 发送WM_LBUTTONDOWN,X、Y坐标按目标窗口的客户区计算<br>注意,是直接投递到最底层控件上,如点按钮就要用该按钮的HANDLE,而不能用父窗口的<br><br>不成功的话,试试在发送此消息先发送WM_ACTIVATE给该窗口
发送WM_LBUTTONDOWN,X、Y坐标按目标窗口的客户区计算<br>注意,是直接投递到最底层控件上,如点按钮就要用该按钮的HANDLE,而不能用父窗口的<br><br>不成功的话,试试在发送此消息先发送WM_ACTIVATE给该窗口
L linyang Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-12 #10 发送广播消息吧,你这个问题涉及进程通信了,有些复杂。
J Jonson_sunshine Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-12 #11 关注!<br>模拟鼠标点击都是要将鼠标置于特定坐标点上进行的。<br>你可以试试用这个函数找到该点的控件,再做处理(发消息给它):<br>function FindVCLWindow(const Pos :TPoint);TWinControl;
关注!<br>模拟鼠标点击都是要将鼠标置于特定坐标点上进行的。<br>你可以试试用这个函数找到该点的控件,再做处理(发消息给它):<br>function FindVCLWindow(const Pos :TPoint);TWinControl;