如何设置鼠标坐标 如何用消息定位一个最小化了的窗口上的鼠标位置,我想设置一个窗口的鼠标位置并完成单击动作,单击动作我已经可以实现,但是先要把鼠标定位到我要的坐标才行,不知道用哪个消息,或是有别的方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Mouse.CursorPos := Point(100,100); 来晚啦。Mouse.CursorPos := Point(100,100); 或者你们有更好的方法也可以啊,我是想通过发送消息的形式,因为我用 SendMessage(hwndNotepad, WM_LBUTTONDOWN,0,0); SendMessage(hwndNotepad, WM_LBUTTONUP,0,0);可以实现点击操作,但是就是不知道如何控制点击的位置,所以想先定位到位置,然后执行点击 用WindowFromPoint 获取该点句柄然后发送 SendMessage(hwndNotepad, WM_LBUTTONDOWN,0,0); SendMessage(hwndNotepad, WM_LBUTTONUP,0,0);这两句话可以完成对指定窗口的单击,但是这样还不够,我需要达到可以对指定窗口的"某点坐标"的单击,现在关键在于这个某点坐标改如何搞定,我操作的窗口并非当前活动窗口 WindowFromPoint可以获取窗体上某个点的句柄。 恩,能够得到,那之后如何做呢,把这个句并保存起来?然后用SendMessage(这个句并, WM_LBUTTONDOWN,0,0);好象不行,能给详细点吗 做一个隐藏窗体,在CREATE时候放到最前面,这个怎么写很容易application.ShowMainForm:=false;setwindowpos(handle,HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);然后你放个TTimer在那上面procedure Tfrmmain.Timer1Timer(Sender: TObject);var Pos: TPoint; Handle: HWND;begin SetCursorPos(100,50); getcursorpos(pos); Handle:=WindowFromPoint(Pos); SendMessage(Handle,WM_LBUTTONDOWN,0,0); SendMessage(Handle,WM_LBUTTONUP,0,0);end;这样写应该可以满足你的要求了,不过你什么公司啊,事情挺好玩的啊 http://www.hongen.com/pc/program/apitutor/api0006/api01.htm 恩,最郁闷的事情发生了,那个按钮不是控件,是画出来的,晕了,我得到的句柄是整个画面的句柄,无法得到按钮的句柄,所以我的消息发送过去都不知道发送在哪点的坐标上了,结果是失败了,我试了自己做的界面上放BUTTON是可以的 我觉得不行 SetCursorPos(100,50);//会操作我当前的鼠标,但鼠标我在其他地方要用的 getcursorpos(pos); Handle:=WindowFromPoint(Pos); //无法取得画出来的按钮的句并,这个函数返回的是画布的句并,所以下面发送消息的语句都发送到了画布,并没有发送到画布上的具体某一点上,我试过,走不通 SendMessage(Handle,WM_LBUTTONDOWN,0,0); SendMessage(Handle,WM_LBUTTONUP,0,0);这两点我觉得都好象走不通 那个我看了,不是image是个button,你好好找下他的handle吧然后sendmessage(Hbutton,bm_click,0,0)应该可以了 你去网上找找类似与spy++的工具,可以看看那些到底是不是按牛, 用SPY++看了是按钮,不过还有一些看不到,比如牌,那些是画出来的 问个弱弱的问题(同步,异步,阻塞,非阻塞) 一个excel输出的问题(在线等) 高分求助delphi打包问题(50),一定给分! 谁知道哪里有StarTeam下载呀!! 一个简单且奇怪的问题:...............在线等答案 如何知道线程结束了? 奇怪!!!!!!!! 一个很简单的问题(在线等待) 写文件问题! 急! Web ActiveX 不能接受UDP数据包吗? 关于控件界面排版的一个奇怪的问题................ 为什么通不过呢???帮帮忙看一下!!!!
SendMessage(hwndNotepad, WM_LBUTTONDOWN,0,0);
SendMessage(hwndNotepad, WM_LBUTTONUP,0,0);
可以实现点击操作,但是就是不知道如何控制点击的位置,所以想先定位到位置,然后执行点击
然后发送
SendMessage(hwndNotepad, WM_LBUTTONUP,0,0);
这两句话可以完成对指定窗口的单击,但是这样还不够,我需要达到可以对指定窗口的"某点坐标"的单击,现在关键在于这个某点坐标改如何搞定,我操作的窗口并非当前活动窗口
application.ShowMainForm:=false;
setwindowpos(handle,HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
然后你放个TTimer在那上面
procedure Tfrmmain.Timer1Timer(Sender: TObject);
var
Pos: TPoint;
Handle: HWND;
begin
SetCursorPos(100,50);
getcursorpos(pos);
Handle:=WindowFromPoint(Pos);
SendMessage(Handle,WM_LBUTTONDOWN,0,0);
SendMessage(Handle,WM_LBUTTONUP,0,0);
end;
这样写应该可以满足你的要求了,不过你什么公司啊,事情挺好玩的啊
SetCursorPos(100,50);//会操作我当前的鼠标,但鼠标我在其他地方要用的
getcursorpos(pos);
Handle:=WindowFromPoint(Pos); //无法取得画出来的按钮的句并,这个函数返回的是画布的句并,所以下面发送消息的语句都发送到了画布,并没有发送到画布上的具体某一点上,我试过,走不通
SendMessage(Handle,WM_LBUTTONDOWN,0,0);
SendMessage(Handle,WM_LBUTTONUP,0,0);
这两点我觉得都好象走不通
是个button,你好好找下他的handle吧
然后sendmessage(Hbutton,bm_click,0,0)
应该可以了