none
如何用VB.net直接操作Internet Explorer_Server(IES)窗口里的网页元素 RRS feed

  • 问题

  • 能不能用IES构造HtmlDocument对象?就像WebBrowser.Document对象一样.
    具体怎么实现,主要是想像用WebBrowser.Document对象那样操作IE浏览器里的网页元素,而不使用内置浏览器控件.
    2009年8月26日 0:58

答案

  • 引用com
    Microsoft internet controls
    microsoft html object library

    Dim SWs As New SHDocVw.ShellWindows
            Dim ie As SHDocVw.InternetExplorer
           
            For Each ie In SWs
                Dim doc As mshtml.HTMLDocument
                doc = TryCast(ie.Document, mshtml.HTMLDocument)
                If Not doc Is Nothing Then
                    MsgBox(doc.body.innerHTML)
                End If
            Next
    http://feiyun0112.cnblogs.com/
    2009年8月26日 1:19
    版主

全部回复

  • 引用com
    Microsoft internet controls
    microsoft html object library

    Dim SWs As New SHDocVw.ShellWindows
            Dim ie As SHDocVw.InternetExplorer
           
            For Each ie In SWs
                Dim doc As mshtml.HTMLDocument
                doc = TryCast(ie.Document, mshtml.HTMLDocument)
                If Not doc Is Nothing Then
                    MsgBox(doc.body.innerHTML)
                End If
            Next
    http://feiyun0112.cnblogs.com/
    2009年8月26日 1:19
    版主
  •     Function IESHTMLDocument(ByVal Hwnd As Integer) As HtmlDocument
            Dim SWs As New SHDocVw.ShellWindows
            Dim ie As SHDocVw.InternetExplorer
            For Each ie In SWs
                Dim doc As mshtml.HTMLDocument
                doc = TryCast(ie.Document, mshtml.HTMLDocument)
                If ie.HWND = Hwnd And doc IsNot Nothing Then
                    Return doc
                End If
            Next
            Return Nothing
        End Function
    使用以上代码时出现异常:
    无法将类型为“mshtml.HTMLDocumentClass”的 COM 对象强制转换为类类型“System.Windows.Forms.HtmlDocument”。表示 COM 组件的类型实例不能强制转换为不表示 COM 组件的类型;不过,只要基础 COM 组件支持对接口 IID 的 QueryInterface 调用,就能将这些实例强制转换为接口。
    如何返回HTMLDocument?
    2009年8月26日 1:53
  • Function IESHTMLDocument(ByVal Hwnd As Integer) As  mshtml.HTMLDocument

    只能用com对象
    http://feiyun0112.cnblogs.com/
    2009年8月26日 1:59
    版主
  • mshtml.HTMLDocument如何遍历所有元素,包括属性?
    mshtml.HTMLDocument.all只能取到length属性.
    2009年8月26日 2:50
  • Dim ele As mshtml.IHTMLElement

    For Each ele In doc.all

    Console.WriteLine(ele.id)

    Next
    http://feiyun0112.cnblogs.com/
    2009年8月26日 3:05
    版主
  • 问题已解决,但像标签窗口(IE7和IE8)窗口按窗口句柄取对象时是不是可以做成一个对象数组呢?
    2009年8月27日 3:59