有个可能很幼稚的想法,但是还是希望有点研究的高手能指点一二
   
    如何对一个web页上的form进行操作?
    比如常见的聊天室,都是一个form进行提交你所打的文字,我想知道如何通过exe进行提交,对此我真的毫无头绪
    谁若能指点一二,真的感激不尽!

解决方案 »

  1.   

    回复人: ehom(?!) ( star1 ) 信誉:100  2002-11-26 14:51:11  得分:50  Top 
     
     
    对于控制IE当然使用现成的COM接口更加灵活!
    利用IObjectWithSite接口的SetSite方法中获得IE的WebBrowser接口并建立自身与WebBrowser的连接,本质就是建立一个COM对象,注册让其它和IE运行在同一进程!通过这个方法,就可以得到一个指向IE COM对象的IUnknown的指针,通过这个指针就可以通过QueryInterface来遍历所有可以得到的接口,然后通过IWebBrowser2借口的get_Document方法网页接口IHTMLDocument2!而通过IHTMLElement,IHTMLInputElement,IHTMLButtonElement,IHTMLFormElement,IHTMLImgElement,IHTMLAppletElement...这样的各种接口就可以对网页中的各种元素进行控制!不过看来,你是想通过外部一个不相关的程序对IE进行控制!这里详细介绍另一种方法,利用IShellWindows接口!首先安装一个ActiveX控件-Microsoft Shell Controls and Automation(IE4以后,系统都自带了)!安装完后,给程序加上TShell控件!
    Uses 中加上这些单元ActiveX,MSHTML,OleCtrls,SHDocVw!var
    ShWin:IShellWindows;
    Wb:IWebBrowser2;
    begin
    ShWin:=Shell1.windows as IShellWindows;
    Wb:=ShWin.Item(0) as IWebBrowser2;
    end;这样就把第一个IE和Wb相关联!然后利用IHTMLDocument2接口!var
      Doc:IHTMLDocument2;
      Button:IHTMLElement;
    begin
    Doc:=Wb.document as IHTMLDocument2;
    Button:= Doc.all.item('MyButton',0) as IHTMLElement;
    //如果网页中该按钮的name或id都不存在,即tagName不存在,就要将'MyButton'换成相应序号数字!
    Button.click;
    //实现点击操作!
    end;为了防止出错,还要对是否存在对象进行判断! 
     
      

  2.   

    提交表单可以直接用现成的方法!var
      Doc:IHTMLDocument2;
      Form:IHTMLFormElement;
    begin
    Doc:=Webbrowser1.Document as IHTMLDocument2;
    Form:= Doc.all.item('Login',0) as IHTMLFormElement;
    Form.Submit;
    end;var
      Doc:IHTMLDocument2;
      Button:IHTMLElement;
    begin
    Doc:=Webbrowser1.Document as IHTMLDocument2;
    Button:= Doc.all.item('MyButton',0) as IHTMLElement;
    //如果name和id不存在,即tagName不存在,就要将'MyButton'换成相应序号数字!
    Button.click;
    end;调用脚本!
    var
      Doc:IHTMLDocument2;
      Scripts:IHTMLScriptElement;
    begin
    Doc:=Webbrowser1.Document as IHTMLDocument2;
    Scripts:=Doc.scripts.item(0,0) as IHTMLScriptElement;
    //Scripts.text可获得脚本内容,Doc.scripts.Length长度,可用于遍历所有脚本!
    end;解释脚本可以用MS提供的Script Control!