joehuaba
Goto Top

Laufenden IE Prozess abfragen

Guten Morgen Zusammen,

leider bin ich kein Profi in VB.NET, allerdings möchte ich folgendes realisieren.

Ich kann mit folgendem Code ein Browserobjekt erstellen, ansurfen und den Text der Seite lesen:

Dim TheBrowser As New SHDocVw.InternetExplorer
TheBrowser.Navigate("http://yourURL.com")  
Dim inhalt As String = TheBrowser.Document.Body.innerText

Das funktioniert ansich klasse!
In dem Beispiel erstelle ich aber selbst das Browserobjekt.
Gibt es eine Möglichkeit, auf einen bereits laufenden IE Prozesses zuzugreifen und den Text zu lesen ?

Danke im Voraus für die Denkanstöße face-smile

Gruß Joehuaba

Content-Key: 376753

Url: https://administrator.de/contentid/376753

Printed on: April 19, 2024 at 20:04 o'clock

Member: emeriks
Solution emeriks Jun 12, 2018 updated at 07:01:45 (UTC)
Goto Top
Hi,
Du kannst versuchen:
  Dim IE as Object = GetObject("InternetExplorer.Application")  

siehe z.B. hier: Laufende Instanzen des Internet Explorers ermitteln

E.
Member: joehuaba
joehuaba Jun 12, 2018 updated at 07:24:59 (UTC)
Goto Top
Danke @emeriks,

dein Denkanstoß war gut face-smile

Habe nun ein wenig weiter geschaut und diese Lösung gefunden / gebastelt:

Dim objShellWindows As New SHDocVw.ShellWindows
        Dim objShellWindow As Object

        ' Fehler beim Zugriff auf die Document-Eigenschaft ignorieren   
        On Error Resume Next

        ' Iterieren über alle Shell-Windows   
        For Each objShellWindow In objShellWindows
            
            ' InnerText der angezeigten Seite anzeigen   
            MsgBox(objShellWindow.Document.body.innertext)

        Next objShellWindow
Member: atze187
atze187 Jun 19, 2018 at 05:59:52 (UTC)
Goto Top
Die Frage die sich mir stellt: warum mit Kanonen auf Spatzen schießen und den Internet Explorer nehmen?

Mit einem Webclient und dem Html Agility Pack geht das ganze wesentlich eleganter, mit dem Internet Explorer greifst du immerhin potentiell in die Arbeitsumgebung des Nutzers ein.

Dim client As New WebClient()
Dim content As String = client.DownloadString("http://istdiestrassedes17tenjunigesperrt.de/")  

Dim document As New HtmlDocument()
document.LoadHtml(content)

Dim body = document.DocumentNode?.Descendants.FirstOrDefault(Function(n) n.Name.Equals("body", StringComparison.InvariantCultureIgnoreCase))