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-ID: 376753

Url: https://administrator.de/forum/laufenden-ie-prozess-abfragen-376753.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

emeriks
Lösung emeriks 12.06.2018 aktualisiert um 09:01:45 Uhr
Goto Top
Hi,
Du kannst versuchen:
  Dim IE as Object = GetObject("InternetExplorer.Application")  

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

E.
joehuaba
joehuaba 12.06.2018 aktualisiert um 09:24:59 Uhr
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
atze187
atze187 19.06.2018 um 07:59:52 Uhr
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))