这样吧
如果说网页里面的button位置不变化的时候
,你考虑看看先找到ie的窗口
然后算出需要点击的位置和窗口的相对距离
mousemove了再点击
可以解决问题么?(呵呵,不用用怪怪的眼神看我,我是newbie)

解决方案 »

  1.   

    用spy++找出该网页的属性,如窗口名,(还有地址栏的地址=你原来记载下来的地方,我认为这样也算是一个校验吧),再找出这个button的caption之类(如"确定"的,好查询它的handle  然后在程序中用findwindow根据该IE窗口来查询并激活这个窗口,
     然后用findwindowsex来根据该IE窗口的句柄来查询名称为"确定"的那个button的句柄,最后用sendmessage来发送鼠标的双击事件来就行了,这是我知道的唯一方法,不好意思了
      

  2.   

    由于有参数的问题,可能post比较繁,但还是谢谢了。
    用spy++我没试过,待我试看看。
      

  3.   

    spy++在哪下的,我怎么不能用?
      

  4.   

    spy++在VC的安装盘里有,好像有三四个文件,你要拷完才行
      

  5.   

    SPY++已经装上了,可是我没有查出按钮的句柄,你可否帮我查查看http://www.1rstwap.com/partners/go.php?pid=first&LangID=cn&cobid=1RSTWAP在网页中有个登录的按钮,我想得到它的句柄。对了,顺便问一下,有没有for delphi的spy++,我下了一个,可是不能用。
      

  6.   

    我没试过网页上的按钮,但一般桌面软件上的按钮我知道怎么控制。首先你当然要取得这个按钮的句柄,方法可以参照上面所说的,用SPY++或者用FindWindowEx。然后,关键是向这个句柄发送两个消息:WM_LBUTTONDOWN和WM_LBUTTONUP。这样就能完成一个按钮被按下又被松开的过程。
    上面的思路肯定是对的,我也成功实现过。要是你还不会可以给我来信:[email protected]
      

  7.   

    在网页上的按钮的句柄我真的没有找到,请大家都试试看。
    我查过msdn,上面有ihtmlbuttonelement,它有click,但我不知道怎样去调用它,请大家帮帮忙。程序如下:
    var
      doc : IHTMLDocument2;
      all : IHTMLElementCollection;
      len,i : integer;
      item : OleVariant;
      HtmlInputEle : IHTMLInputElement;
      SubmitBtn : IHTMLButtonElement;
      spDisp : IDispatch;
    begin
      if WebBrowser1.Document <> nil then
        begin
          doc:=WebBrowser1.Document as IHTMLDocument2;
          all:=doc.all;
          len:=all.Length;
          for i:=0 to len-1 do
            begin
              spDisp:=all.item(i,varEmpty);
              if SUCCEEDED(spDisp.QueryInterface(IHTMLInputElement ,HtmlInputEle)) then
                begin
                  if HTMlInputEle.name = 'UserID' then
                    HtmlInputEle.value := 'test';
                  if HTMlInputEle.name = 'Passwd' then
                    HtmlInputEle.value := 'test';
                end;
              if SUCCEEDED(spDisp.QueryInterface(IHTMLButtonElement ,SubmitBtn)) then
                if SubmitBtn.name = 'submitButtonName' then
                  SubmitBtn.click();
            end;
        end;
    end;这样做的话,它会提示click没有定义。
      

  8.   

    你的思路不对,OnClick只是一个事件,在Windows系统中,事件都是消息驱动的。你关键要找到触发这个事件的消息,然后自己发送这个系统给相应的窗口或是组件句柄,这样才会有效果。
    建议你用SPY++监视这个网页,记录下你点击按钮前、中、后系统、程序发送的所有消息(在一、两秒钟内就会有几十几百条),然后对照着MSDN查,不放过每一条可能的消息。