关键词搜索

源码搜索 ×
×

vb.net 教程 20-3 控制Ie浏览器 9

发布2021-09-16浏览395次

详情内容

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

八、更加深入的例子

同12章中通过 HtmlElement类 或者其他方法获取网页上元素信息,

我们也可以通过获得 mshtml.IHTMLDocument2 来获得IE窗口网页元素信息。

这里偷个懒,主要代码同上一小节 vb.net 教程 20-3 控制Ie浏览器 8

但是将ListIe设置为窗体级变量:

Dim listIe As ArrayList

对应列表按钮代码:

    Private Sub cbListIE_Click(sender As Object, e As EventArgs) Handles cbListIE.Click

        listIe = New ArrayList

        listIe = getIhtmlDoc()

        If listIe.Count > 0 Then

            For i As Integer = 0 To listIe.Count - 1

                Dim subList As New ListViewItem()

                subList.Text = i.ToString

                Dim iedocInfo As New IeDocStructure

                iedocInfo = CType(listIe.Item(i), IeDocStructure)

                subList.SubItems.Add(iedocInfo.title)

                subList.SubItems.Add(iedocInfo.url)

                lvListIE.Items.Add(subList)

            Next

        End If

    End Sub

所举例子采用的是  http://www.qqrec.com/vblessons/vbnet20-2-1.htm

获得文本框内的信息代码如下:

    Private Sub btnInfo_Click(sender As Object, e As EventArgs) Handles btnInfo.Click

        If lvListIE.SelectedIndices.Count < 1 Then

            MessageBox.Show("尚未选择一行数据")

            Exit Sub

        End If

        Dim selectedIndex As Integer

        selectedIndex = lvListIE.SelectedIndices.Item(0)

        Dim ieInfo As IeDocStructure

        Dim ie_SHwnd As Integer

        ieInfo = CType(listIe.Item(selectedIndex), IeDocStructure)

        ie_SHwnd = ieInfo.IE_SHwnd

        '获得IHTMLDocument2接口

        Dim IEdoc As mshtml.IHTMLDocument2

        IEdoc = getDocumentfromIES(ie_SHwnd)

        Dim studentname As String = ""

        Dim studentage As String = ""

        Dim ieElement As mshtml.IHTMLElement

        For Each ieElement In IEdoc.all

            Select Case ieElement.id

                Case "studentname"

                    studentname = ieElement.getAttribute("value")

                Case "studentage"

                    studentage = ieElement.getAttribute("value")

            End Select

        Next

        MessageBox.Show("学生名称:" & studentname & vbCrLf & "学生年龄:" & studentage)

    End Sub

运行结果如下图(注意,笔者偷懒直接选择正确的网页,如果选择别的网页不能返回结果的)

不管Ie窗体是被遮挡或者最小化,都会获得正确的结果。

当然请注意:切勿用于做坏事

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net教程 目录

————————————————

版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载