Private Sub Form_Load() WebBrowser1.Navigate2 App.Path & "\test.htm" End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim vDoc, vTag Dim i As Integer
Set vDoc = WebBrowser1.Document List1.Clear For i = 0 To vDoc.All.length - 1 If UCase(vDoc.All(i).tagName) = "INPUT" Then Set vTag = vDoc.All(i) If vTag.Type = "text" Or vTag.Type = "password" Or vTag.Type = "radio" Then List1.AddItem vTag.Name Select Case vTag.Name Case "Name" vTag.Value = "IMGod" Case "R2" vTag.Checked = True Case "NickName" vTag.Value = "IMGod" Case "Password" vTag.Value = "IMGodpass" Case "EMail" vTag.Value = "[email protected]" End Select ElseIf vTag.Type = "submit" Then 'vTag.Click End If End If Next i End Sub'test.htm文件 <HTML> <HEAD> <TITLE>测试页</TITLE> </HEAD> <BODY> <form method="POST" action="result.asp"> <p>请填写下面表单注册(*项为必添项)</p> <p>*姓名<input type="text" name="Name" size="20"></p> <p>*男<input type="radio" value="V1" name="R1"></p> <p>*女<input type="radio" value="V1" name="R2"></p> <p>*昵称<input type="text" name="NickName" size="20"></p> <p>电子邮件<input type="text" name="EMail" size="20"></p> <p>*密码<input type="password" name="Password" size="20"></p> <p><input type="submit" value="提交" name="B1"> <input type="reset" value="全部重写" name="B2"></p> </form> </BODY> </HTML>
Private Sub Form_Load() '此例需要引用Microsoft Internet Controls Dim SWs As New ShellWindows Dim IE, vDoc For Each IE In SWs Set vDoc = IE.Document If TypeName(vDoc) = "HTMLDocument" Then If Trim(vDoc.Title) = "百度——全球最大中文搜索引擎" Then vDoc.getElementById("wd").Value = "PowerBASIC中国" '填写表单 vDoc.getElementById("f").submit '提交表单 Exit For End If End If Next End Sub
Option ExplicitPrivate Sub Command1_Click() Dim vShellWindow As New ShellWindows Dim vWebBrowser As New WebBrowser Dim vTemp On Error Resume Next For Each vTemp In vShellWindow '查找IE窗口 If TypeName(vTemp.document) = "HTMLDocument" Then If vTemp.document.Title = "欢迎来到CSDN技术社区" Then For Each vWebBrowser In vTemp.document.getElementsByTagName("frame") If vWebBrowser.document.Title = "社区Logo" Then Exit For Next End If End If Next '查找登录或注销链接 For Each vTemp In vWebBrowser.document.getElementsByTagName("A") If TypeName(vTemp) = "HTMLAnchorElement" Then Exit For Next vTemp.Click '点击链接 End SubPrivate Sub Form_Load() Dim vIE As New InternetExplorer vIE.navigate "http://community.csdn.net/" vIE.Visible = True End Sub 实际上Frame就是WebBrowser。
有几点需要补充一下:
1.不适合在程序中读HTML源码,改变之后再写进去,然后刷新,
2.HTML页面上有多个COMBOBOX,COMBOBOX是可以取到句柄的,但是怎么区分该条数据是要放到哪个COMBOBOX中呢,TEXTBOX是取不到HANDLE的没有思路,希望各位多多帮忙```
WebBrowser1.Navigate2 App.Path & "\test.htm"
End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim vDoc, vTag
Dim i As Integer
Set vDoc = WebBrowser1.Document
List1.Clear
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
If vTag.Type = "text" Or vTag.Type = "password" Or vTag.Type = "radio" Then
List1.AddItem vTag.Name
Select Case vTag.Name
Case "Name"
vTag.Value = "IMGod"
Case "R2"
vTag.Checked = True
Case "NickName"
vTag.Value = "IMGod"
Case "Password"
vTag.Value = "IMGodpass"
Case "EMail"
vTag.Value = "[email protected]"
End Select
ElseIf vTag.Type = "submit" Then
'vTag.Click
End If
End If
Next i
End Sub'test.htm文件
<HTML>
<HEAD>
<TITLE>测试页</TITLE>
</HEAD>
<BODY>
<form method="POST" action="result.asp">
<p>请填写下面表单注册(*项为必添项)</p>
<p>*姓名<input type="text" name="Name" size="20"></p>
<p>*男<input type="radio" value="V1" name="R1"></p>
<p>*女<input type="radio" value="V1" name="R2"></p>
<p>*昵称<input type="text" name="NickName" size="20"></p>
<p>电子邮件<input type="text" name="EMail" size="20"></p>
<p>*密码<input type="password" name="Password" size="20"></p>
<p><input type="submit" value="提交" name="B1">
<input type="reset" value="全部重写" name="B2"></p>
</form>
</BODY>
</HTML>
没有啥问题
HTML页已经用浏览器打开了,VB6只是要为了实现填数据到其上面的TEXT 或 选择COMBOBOX, 多多帮忙啊,我在那想是不是应该与浏览器有个什么接口啊什么的不知道,都没得思路...
怎么用VB6实现填数据到HTML上面的TEXT 或 选择COMBOBOX
不是要修改vb6下用控件打开的HTML,而是修改浏览器(IE、腾讯TT、MyIE或其他浏览器)上显示的一个HTML
不是要填写vb6下用控件打开的HTML,而是填写浏览器(IE、腾讯TT、MyIE或其他浏览器)上显示的一个HTML继续顶!
'此例需要引用Microsoft Internet Controls
Dim SWs As New ShellWindows
Dim IE, vDoc
For Each IE In SWs
Set vDoc = IE.Document
If TypeName(vDoc) = "HTMLDocument" Then
If Trim(vDoc.Title) = "百度——全球最大中文搜索引擎" Then
vDoc.getElementById("wd").Value = "PowerBASIC中国" '填写表单
vDoc.getElementById("f").submit '提交表单
Exit For
End If
End If
Next
End Sub
而许多的TEXTBOX,COMBOBOX都是在这个frame上面的,这种情况又该怎么填写表单呢
Dim vShellWindow As New ShellWindows
Dim vWebBrowser As New WebBrowser
Dim vTemp
On Error Resume Next
For Each vTemp In vShellWindow
'查找IE窗口
If TypeName(vTemp.document) = "HTMLDocument" Then
If vTemp.document.Title = "欢迎来到CSDN技术社区" Then
For Each vWebBrowser In vTemp.document.getElementsByTagName("frame")
If vWebBrowser.document.Title = "社区Logo" Then Exit For
Next
End If
End If
Next
'查找登录或注销链接
For Each vTemp In vWebBrowser.document.getElementsByTagName("A")
If TypeName(vTemp) = "HTMLAnchorElement" Then Exit For
Next
vTemp.Click '点击链接
End SubPrivate Sub Form_Load()
Dim vIE As New InternetExplorer
vIE.navigate "http://community.csdn.net/"
vIE.Visible = True
End Sub
实际上Frame就是WebBrowser。