在VB中通过WebBrowse控件显示的网页,如何引用网页中文本框的内容至VB程序。

解决方案 »

  1.   

    看看这个例子,使用WebBrowser1的Document对象就可以了怎么编程把用户名,密码提交到网页上的登录页?
    首先在程序中加入Webbrowser控件
    假设你的HTML页面表单代码如下:
    <form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser">
      <p>请填写下面表单注册(*项为必添项)</p>
      <p>*姓名<input type="text" name="Name" size="20"></p>
      <p>*昵称<input type="text" name="NickName" size="20"></p>
      <p>电子邮件<input type="text" name="EMail" size="20"></p>
      <p>*密码<input type="text" name="Password" size="20"></p>
      <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
    </form>
    注意其中元素的type、Name、value属性。然后VB中的代码如下:
    Private Sub Command1_Click()
        WebBrowser1.Navigate "http://chen/chat/newuser.htm"
    End Sub
    Private 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" Then
                    List1.AddItem vTag.Name
                    Select Case vTag.Name
                        Case "Name"
                            vTag.Value = "IMGod"
                        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
    点击Command1就可以自动填表并提交了。
      

  2.   

    http://dev.csdn.net/develop/article/17/17697.shtm
      

  3.   

    好贴.但只给出VB向ASP提交数据,没有给出VB读取ASP返回数据,可惜......
      

  4.   

    好贴.但只给出VB向ASP提交数据,没有给出VB读取ASP返回数据,可惜......http://blog.csdn.net/online/archive/2004/07/07/35994.aspx
      

  5.   

    http://blog.csdn.net/online/archive/2004/07/07/35994.aspx
    很详细!好!!
      

  6.   

    <问online(龙卷风V3.0--笑傲江湖):>
    <!--看了先生的文章,顿时有了从四脚爬爬一下子到两脚走路的感觉。同时,也有一些疑问:-->
    <引用原文>
    <单个记录提交到远程asp文件>
    Getsingleinfo.asp(数据增加并返回结果)
    <%@ Language=VBScript %>
    <%
    '这里需要修改,返回客户的xml响应文档
    Response.ContentType = "text/xml"
    set conn=Server.CreateObject("ADODB.connection")
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("web.mdb")
    dim xmldom
      ' set xmldom = Server.CreateObject("Microsoft.XMLDOM")
       set xmldom = Server.CreateObject("MSXML.DOMDocument")
       xmldom.load Request
       dim sid,name,price,catagory,pdate
       sid = xmldom.selectSingleNode("//项目编号").text
       name = xmldom.selectSingleNode("//项目名称").text
       price = xmldom.selectSingleNode("//价格").text
       catagory = xmldom.selectSingleNode("//种类").text
       pdate =xmldom.selectSingleNode("//发生日期").text
       dim strsql,retval
       on error resume next
       strsql="insert into test(sid,name,price,catagory,pdate) values('"& sid &"','"& name &"','"& price &"','"& catagory &"','"& pdate &"')"
       'response.write strsql
       conn.execute strsql
       if err.number=0 then
          retval="数据成功提交"
       else
          retval="数据提交失败,请检查你的数据"
       end if
       set xmldom = Nothing
       set conn=nothing
    '下面的代码是将结果以xml形式返回
    '需要加上<?xml version="1.0" encoding="gb2312"?>这句,否则无法返回中文
    %>
    <?xml version="1.0" encoding="gb2312"?>
    <Response>
      <retval><%=retval%></retval>
    </Response>
    </单个记录提交到远程asp文件>
    <部分客户端vb代码>
    '构造出要上传的XML串,这里节点使用中文
    StrXml = "<Request>" & "<项目编号>" & Txtbh.Text & "</项目编号>" & _
               "<项目名称>" & Txtname.Text & "</项目名称>" & _
               "<价格>" & Txtprice.Text & "</价格>" & _
               "<种类>" & TxtCategory.Text & "</种类>" & _
               "<发生日期>" & Txtpdate.Text & "</发生日期>" & _
               "</Request>"
    </部分客户端vb代码>
    </引用原文><疑问>
    如果上传的XML串中的节点是上例节点中的随意一个节点,Getsingleinfo.asp应如何灵活判断上传的节点是那一个呢(项目编号?项目名称?价格?种类?种类?发生日期?)
    </疑问>
    </问online(龙卷风V3.0--笑傲江湖):>