如何找到网页的控件句柄向他们发送模拟按键? ( 积分: 100 )

  • 主题发起人 主题发起人 vegetablebird20
  • 开始时间 开始时间
V

vegetablebird20

Unregistered / Unconfirmed
GUEST, unregistred user!
我是想写一个程序,向一些B/S的应用程序的某些文本框、按钮,发送模拟按键,比如,文本框输入“ABC”,自动按下Submit按钮等等。<br>谢谢诸位大虾。
 
好像很难哦。。因为网页上的都不是输入框
 
我以前写过这样一段代码,但是在家里。我在网络上帮你CUT一段资料你参考下<br><br>MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素.MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event对象等.其中描述呈现在客户窗口实际网页的是Document对象。由一系列的属性、方法、对象和集合组成.其中All集合中包含网页中所有标记(Tag)元素,其主要的方法和属性有:<br>&nbsp;&nbsp;&nbsp;&nbsp;(1)Length(长度):即标记出现的个数,可以把标记的集合理解为从0开始的一维数组,其次序按照标记在网页位置排列;<br>&nbsp;&nbsp;&nbsp;&nbsp;(2)Tags(标记):用于过滤出给定标记的集合,如Doc.Al1.Tags(P)得到所有分段标记P;<br>&nbsp;&nbsp;&nbsp;&nbsp;(3)Item(项目):用于选择集合中的某1个元素,如object.item(0)得到集合的第1个元素,而object.item(i)得到第i+1个元素.&nbsp;<br>此外,IHTMLElement也是个常用的集合对象,代表网页中指定标记的集合,通过这个集合对象,可以得到网页上特定标记的内容.IHTMLElement有4个主要属性:<br>&nbsp;&nbsp;&nbsp;&nbsp;(1)InnerText:开始标记和结束标记之间的文本;<br>&nbsp;&nbsp;&nbsp;&nbsp;(2)InnerHTML:开始标记和结束标记之间的文本和HTML;<br>&nbsp;&nbsp;&nbsp;&nbsp;(3)OuterText:对象的文本;<br>&nbsp;&nbsp;&nbsp;&nbsp;(4)OuterHTML:对象的文本和HTML.<br><br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>var<br>Doc:IHTMLDocument2;<br>input:OleVariant;<br>userinputelement,pwdinputelement:ihtmlinputelement;<br>begin<br>doc:=webbrowser1.document&nbsp;as&nbsp;ihtmldocument2;<br>userinputelement:=(doc.all.item(''user''(也就是网页中用户名控件的名字),0)&nbsp;as&nbsp;ihtmlinputelement);<br>userinputelement.value:=edit1.text;(也就是你要向网页输入的东西)<br>pwdinputelement:=(doc.all.item(''password'',0)&nbsp;as&nbsp;ihtmlinputelement);<br>pwdinputelement.value:=edit2.text;<br>input:=doc.all.item(''submit'',0);<br>input.click;<br>end;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;当提交数据按钮没有NAME属性时,采用如下方法:<br><br><br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>var<br>Doc:IHTMLDocument2;<br>form:ithmlformelement;<br>userinputelement,pwdinputelement:ihtmlinputelement;<br>begin<br>doc:=webbrowser1.document&nbsp;as&nbsp;ihtmldocument2;<br>userinputelement:=(doc.all.item(''user''(也就是网页中用户名控件的名字),0)&nbsp;as&nbsp;ihtmlinputelement);<br>userinputelement.value:=edit1.text;(也就是你要向网页输入的东西)<br>pwdinputelement:=(doc.all.item(''password'',0)&nbsp;as&nbsp;ihtmlinputelement);<br>pwdinputelement:=edit2.text;<br>form:=(doc.all.item(''login_form'',0)&nbsp;as&nbsp;ihtmlformelement):form.submit;<br>end;<br><br>登录&quot;按钮一般都是网页中默认的回车按钮,所以可以用上面代码来代替前面的点击按钮.
 
后退
顶部