模拟鼠标点击(送高分)

cqy1986846 2009-05-17 02:02:24
我FORM1中有个webbrowser1 我鼠标坐键点webbrowser1中 X:10 Y:10的位置 但是屏幕上的光标不要跟过去
...全文
205 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tnianshao 2009-11-03
  • 打赏
  • 举报
回复
我已经解决了 是 句柄找的不对
cqy1986846 2009-05-19
  • 打赏
  • 举报
回复
那为什么postmessage始终发送不成功呢
Risk_lee 2009-05-19
  • 打赏
  • 举报
回复
postmessage,绝对可以。sendmessage,也绝对可以。不用postmessage,sendmessage也绝对可以。只不过是上面的代码拿句柄拿错了而已。mouse_event,是可以,但是绝对不要用
kill222 2009-05-18
  • 打赏
  • 举报
回复
Postmessage(WebBrowser1.Handle,WM_MOUSEMOVE,0,MakeLong(10,10));
PostMessage(WebBrowser1.Handle,WM_LBUTTONDOWN,0,0);
PostMessage(WebBrowser1.Handle,WM_LBUTTONUP,0,0);
cqy1986846 2009-05-18
  • 打赏
  • 举报
回复
Postmessage(WebBrowser1.Handle,WM_MOUSEMOVE,0,MakeLong(10,10));
PostMessage(WebBrowser1.Handle,WM_LBUTTONDOWN,0,0);
PostMessage(WebBrowser1.Handle,WM_LBUTTONUP,0,0);


也不行啊 怎么模拟不了? WebBrowser中的坐标有人测试过吗 POST不行?
heikeyanxi 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mwy654321 的回复:]
引用 6 楼 kill222 的回复:
问题解决:
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;


你这种方法根本不好,例如你的程序窗口最小化了,你这样还可以点到吗?

我有方法,别说你是窗口最小化,就是窗体隐藏了,都还可以点到,真正的发…
[/Quote]
敢问下是什么方法?
cqy1986846 2009-05-18
  • 打赏
  • 举报
回复
MOUSE_EVENT 效率太查了 最好POSTMESSAGE


问题解决:
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 真不能用? 有没有高手帮忙
sy_100000 2009-05-18
  • 打赏
  • 举报
回复
点击之后是执行事件,所以压根不要模拟点击,直接发送命令不就可以了?
无条件为你 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kill222 的回复:]
问题解决:
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;
[/Quote]

你这种方法根本不好,例如你的程序窗口最小化了,你这样还可以点到吗?

我有方法,别说你是窗口最小化,就是窗体隐藏了,都还可以点到,真正的发消息点击指定坐标。
ly_liuyang 2009-05-17
  • 打赏
  • 举报
回复
mouse_event吧~
sxf_zero 2009-05-17
  • 打赏
  • 举报
回复
原来也曾尝试用 postmessage 发送鼠标消息,一直没有成功,只能用mouse_event了
sxf_zero 2009-05-17
  • 打赏
  • 举报
回复
如2楼所说的,先记录鼠标位置,然后移到新位置,点击之后,再移回原来记录的位置位置。由于速度很快,所以基本上感觉不到
procedure TForm1.btn1Click(Sender: TObject);
var
Rect: trect;
p,pp: TPoint;
begin

GetCursorPos(p);
GetWindowRect(wb1.Handle,rect);

SetCursorPos(Rect.Left+30,+Rect.Top+30);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
setCursorPos(p.x,p.y);

end;
gyk120 2009-05-17
  • 打赏
  • 举报
回复
无解,你要移动鼠标才能点击这个地方,但是又得不移动鼠标,除非你事先保存鼠标的位置,点击完之后在移回来……
heikeyanxi 2009-05-17
  • 打赏
  • 举报
回复
关注一下
kill222 2009-05-17
  • 打赏
  • 举报
回复
问题解决:
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;
hemiya 2009-05-17
  • 打赏
  • 举报
回复
sendinput

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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