我FORM1中有个webbrowser1 我鼠标坐键点webbrowser1中 X:10 Y:10的位置 但是屏幕上的光标不要跟过去  

解决方案 »

  1.   

    如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;
      

  2.   

    原来也曾尝试用 postmessage 发送鼠标消息,一直没有成功,只能用mouse_event了
      

  3.   

    问题解决:
    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;
      

  4.   

    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 真不能用?  有没有高手帮忙
      

  5.   

    Postmessage(WebBrowser1.Handle,WM_MOUSEMOVE,0,MakeLong(10,10));
    PostMessage(WebBrowser1.Handle,WM_LBUTTONDOWN,0,0);
    PostMessage(WebBrowser1.Handle,WM_LBUTTONUP,0,0);
      

  6.   

    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不行?
      

  7.   

    postmessage,绝对可以。sendmessage,也绝对可以。不用postmessage,sendmessage也绝对可以。只不过是上面的代码拿句柄拿错了而已。mouse_event,是可以,但是绝对不要用
      

  8.   

    那为什么postmessage始终发送不成功呢