vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 04.05.19 19:05

..nicht angesprungen.

Hallo erstmal, ich bin hier neu (schreib an der passenden Stelle wohl auch noch etwas), aber das o. a. Thema lässt mir seit Tagen keine Ruhe.

Ich bin quasi ein typischer Umsteiger von VBA (bis MS Access 2016) auf VB (.net), dabei hab ich schon festgestellt, dass das fast zwei unterschiedliche Welten sind, wobei ich mir hinsichtlich MS Access VBA nur noch selten etwas neues erzählen lassen muss.

Meine derzeitige Herausforderung ist es, aus einem Web-Auftritt die Haupt- und Unterseiten nach Links durchzuforsten und diese dann auf Funktion prüfen (ob ok, 403, 404, timeout usw. usf.), nach dem Umzug des dazugehörigen Forums laufen sehr viele Links ins Leere, und Google mag das garnicht und straft das gnadenlos ab.
Sicher, es gibt Tools, die das können, aber entweder sind die unflexibel, sehr langsam (hauptsächlich Freeware) oder aber deutlich überteuert (50 USD/Monat oder so), daher stelle ich mich dieser Herausforderung.
Zunächst sollen alle Links zu htm, Bildern Videos usw. gefunden und zwischengespeichert und dann der reihe nach getestet werden, eine Grundkonstrukt speziell für letzteres habe ich schon.

Ich bin an der Stelle, wo ich die Hauptseite (Outerhtml) erfolgreich nach Links durchsucht und diese in einem Array gespeichert habe.
Und jetzt komme ich nicht weiter.
Ich will nun auf die Seiten dieser gespeicherten Links navigieren und stoße mir dabei die Nase, hier der Beispielcode, reduziert auf die maßgeblichen Zeilen (fett), mit erklärenden Kommentaren, wo nötig:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'''''''''''' Button, der angeklickt wird, nachdem die Hauptseite (http:www.hauptseite.de) gefunden und ausgelesen wurde
Dim...
.
.
.
.
For...

'''''''''''' hier soll nun das Array mit den zwischengespeicherten Links verarbeitet werden (Links in
'''''''''''' Unterseiten finden und ihrerseits speichern)
.
.
Folge_Gesamt_Link_Text_ = URL_String_Array_(I1_)


'''''''''''' mit der foldenden Sub wird die Webbrowser.Navigate-Methode angestoßen, und dann kommt's, was mir
'''''''''''' Kopfzerbrechen verursacht

Sub_Folge_Url_navigieren_(Folge_Gesamt_Link_Text_)


'''''''''''' wenn der folgende Exit Sub aktiv ist, also nicht auskommentiert, wird zunächst die obige Sub
'''''''''''' verarbeitet, nach dem Exit Sub verlässt das Prog die Sub natürlich, springt dann auch die Sub's
'''''''''''' Navigated und DocumentCompletedan, ich kann dann im Formular im zweiten Webbrowser-Fenster die
'''''''''''' Seite im Formular sehen

Exit Sub


'''''''''''' eigentlich soll es hier weitergehen, also Unterwebseite ebenfalls nach Links durchsuchen, also
'''''''''''' weiter ohne den Exit Sub (den ich dann auskommentiert habe). Und genau das klappt nicht: Nach der
'''''''''''' Verarbeitung der vorigen Sub läuft das Programm weiter ohne die weiteren Sub's, also Navigated
'''''''''''' usw. zu durchlaufen

<eigentlich nächste Function...>

Next...
.
.
.
End Sub

Private Sub Web_Url1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) Handles Web_Url1.Navigated

Url1_Eingabe.Text = Web_Url1.Url.ToString()

End Sub


Private Sub Web_Url1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) Handles Web_Url1.Navigated

Url1_Eingabe.Text = Web_Url1.Url.ToString()


End Sub

Private Sub Web_Url1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles Web_Url1.DocumentCompleted
AddHandler CType(sender, WebBrowser).Document.Window.Error,
AddressOf Window_Error

End Sub


Was mache ich falsch? Was übersehe ich? Normalerweise finde ich als routinierter Programmierer stets eine Lösung, aber speziell zu diesem Thema habe ich bislang nicht einmal gleiche oder ähnliche Fragen/Antworten gefunden.
Vielleicht weiß hier ja jemand weiter?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: Manfred X
Datum: 05.05.19 01:16

Hallo!

Zunächst wäre zu klären, ob Du den HTML-Quelltext der Seiten nicht
über einen HTTPWebrequest laden könntest (z.B. in einen Memorystream).
Das klappt gewöhnlich, wenn die Seite nicht über Javascript-Code erst
aufgebaut werden muß (nachladen des HTML-Codes per Script).
Diese Methode ist ggf. zu bevorzugen

Falls das nicht möglich ist, wäre zu beachten, daß das WebBrowser-Control
nur ein Wrapper für den Internet-Explorer ist. Das genaue Verhalten dieses
Controls ist deshalb von den Einstellungen des Internet-Explorers abhängig.
Der Explorer verwendet z.B. Seiten-Caching, was zu unerwartetem Verhalten
führen kann (z.B. Ablauf bleibt hängen, weil ein Cache gefüllt ist oder
Aufrufe werden mehrfach aufgeführt, ich vermute weil intern im Explorer
das Laden im Multitasking läuft).

Das DocumentCompleted-Event feuert bei komplexen Seiten mehrfach, also
bereits dann, wenn aus "Sicht" des Internet-Explorers, ein hinreichender
Teil der Seite bereits geladen worden ist.
Um sicher zu stellen, daß der gesamte Seitencode im Explorer vorhanden
ist, sollte in diesem Event zuerst die Readystate-Eigenschaft des
Webbrowser-Control auf "Completed" abgefragt werden.

Beitrag wurde zuletzt am 05.05.19 um 01:29:55 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 05.05.19 08:02

Oki, erstmal Danke für die Antwort

Das Web/die Seite, um die es hier geht, verwendet Java-Script; ob die vollständig damit gehändelt/geladen wird, schaue ich mir mal an...obwohl, wenn ja, müsste dann nicht jeder navigate fehlschlagen?

Ich hatte wg. eines anderen Probs, welches ich vorher damit hatte (ständige Meldung von Java-Sript-Fehlern, was ich dann lösen konnte), mal hinsichtlich verwendetem Browser nachgeschaut.
Ich habe mir schon gedacht, dass hier IE-Eigenschaften die Rolle spielen. Ich verstehe aber trotz Deiner Erklärung immer noch nicht so ganz, warum die WebBrowser.Navigate-Methode in einem Fall funktioniert, im anderen nicht.

Folgt unmittelbar nach der Methode das End- bzw. Exit Sub des Buttons, wird die angeforderte Seite geladen, folgt jedoch danach weiterer Code in genau dieser Sub, wird die Seite nicht geladen und die beiden Events nicht angesteuert.
Wie löse ich das WebBrowser.Navigated-Event aus? Das muss doch gehen, denke ich mir, und natürlich suche ich die Erklärung zunächst in dem Fakt, dass ich mit VB.net (im Vergleich zu VBA) nur sehr sporadisch vertraut bin und mir sehr viele Basis-Kenntnisse fehlen.
Ich hatte mir extra für VB.net auch entsprechende Bücher gekauft (bin eher konservativ, benötige papierhaftes), aber dort nichts darüber gefunden, nur, wenn überhaupt, stets Hinweise, DASS die Eigenschaften navigated und completed angesteuert werden, aber außer "navigated-Methode wird durchgeführt" nicht, WIE das passiert, und selbst die Seite https://docs.microsoft.com/de-de/, die eigentlich recht gut gemacht ist, gibt sehr viel darüber her.

Ich checke nun zunächst genau ab, was Du geschrieben hast (bin noch nicht ganz wach *lach*), danach mehr.
 
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 05.05.19 15:47

Ok, Manfred X, also mit dieser Antwort
https://www.vbarchiv.net/forum/id22_i98665t98665_datagridview-bilder-url-pruefen.html
(aus 2015 )
habe ich tatsächlich etwas anfangen können, ich habe das Beispiel an meine Herausforderung angepasst, es liefert das, was ich brauche bzw. haben will...vielen Dank für speziell den Hinweis auf HttpWebRequest, das Anmelden hier hat sich schon damit vollständig gelohnt

Trotzdem ist es mir ein Rätsel - und so etwas macht mich gerade in der Programmierung nicht zufrieden - warum das hier

Navigate(URL)
Exit Sub

klappt (nach Verlassen der Sub wird zunächst zum Navigated-Event, dann zum DocumentCompleted-Event gesprungen), das hier

Navigate(URL)
nächste Sub/Function

aber nicht, dort wird zu keinem der beiden o. a. Ereignisse gesprungen; abgesehen von den "Test"-Varianten ist der Code absolut identisch

Bleibt unterm Strich, dass ich im Vergleich zu VBA ganz schön Lern- und Erfahrungsbedarf habe

Beitrag wurde zuletzt am 05.05.19 um 15:50:33 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: Manfred X
Datum: 05.05.19 17:22

Hallo!

Ich vermute, da liegt ein Mißverständnis vor.
Sobald Navigate(URL) abgesetzt ist, läuft der Haupthread einfach weiter
und führt sofort die nächste Anweisung (Aufruf der nächsten Sub) aus.
Gleichzeitig läuft ein zweiter Thread, nämlich der Ladevorgang im Browser.

Ein Sprung zu einem Event findet nicht statt.
Der Browser löst diese Ereignisse im Hauptthread aus.
Allerdings muß dazu der Hauptthread im Halte/Wartemodus sein.
Solange der Hauptthread arbeitet (die Sub mit dem Navigate-Aufruf nicht
abgeschlossen ist), kann keine Ereignisverarbeitung starten.
(Oder man setzt ein "DoEvents" in den Code).

Allerdings unterläßt der Internet-Explorer auch manchmal die Auslösung.
Das hat mit VB.Net nichts zu tun, sondern ist Explorer-Verhalten.
In dem Fall hilft es meist, die Seite noch einmal aufzurufen
(z.B. Navigate timergesteuert wiederholen).

Zu dem Zweck kann man vor dem Navigate-Aufruf eine modulglobal definierte
Datetime-Variable mit der aktuellen Zeit füllen.
Im DocumentCompleted-Event wird diese Zeit gelöscht (Variable auf Nothing setzen).
Der Timer prüft im Tick-Event, ob eine Startzeit gegeben ist und bestimmt
ggf. die Differenz zwischen aktueller Zeit und Startzeit. Ist diese Differenz
zu groß, wird der Navigate-Aufruf erneut ausgeführt.

Beitrag wurde zuletzt am 05.05.19 um 17:28:24 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 05.05.19 20:21

Jepp, das mit dem Missverständnis sehe ich ähnlich, hab ich wohl auch selber ein wenig "in Gang" gesetzt.

Das mit dem HttpWebRequest war doch nicht so ganz die Lösung, hat mich aber mit dem Lesen hier nachdenken lassen.

Die DoEvents-Anweisung habe ich ganz zu Beginn versucht, aber VB 2015 mag die nicht mehr. Auch habe ich schon von mir aus nach Möglichkeiten gesucht, z.B. den Naviagate erneut aufrufen, tatsächlich auch Zeit-Verzögerungen...hat alles nichts gebracht, vielleicht war/bin ich auch ungeduldig.

Ich habe mir jetzt anders beholfen, mit etwas ähnlichem wie einen rekursiven "Call".

Der erste Navigate funktioniert ja reibungslos, die zu durchsuchende Hauptseite ist verfügbar.

Im nächsten Schritt, ausgelöst durch einen Klick-Button, werden alle Links (OuterHtml) dieser Seite ausgelesen und in ein Array gepackt, und dann wird es aufmerksamkeits-intensiv: Bereits dieses Array und dessen Zähler müssen von Beginn an Public deklariert werden, damit die Inhalte für die nächsten Aktionen (Preserve und so weiter) erhalten bleiben.

Ich starte den Array For-Next, rufe dort dann den nächsten Navigate auf ud verlasse die (nun) Function. Die beiden Events werden dann durchlaufen, und in der DocumentCompleted-Ereignis-Sub rufe ich am Ende erneut vorgenannte Funktion auf...die kommt natürlich wieder an die Stelle, wo erneut der For-Next durchgeführt wird, wobei der For stets mit der hochgezählten Public-Variablen aufsetzt.

Auf diese Weise erhalte ich tatsächlich stets die nächste Url, kann das auch im Browser-Steuerelement beobachten.

So sollte es wirklich gehen, erfordert allerdings unglaublich viel Aufmerksamkeit, mehr als sowieso schon.

Alle anderen Möglichkeiten sind mir zu vage und zu unberechenbar, ich habe das Gefühl, als könne ich die nicht wirklich kontrollieren.

Nichtsdestso weniger ungekürzt Danke...das hier hat meine Gedanken doch ein wenig anders laufen lassen, die waren wirklich festgefahren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: Manfred X
Datum: 05.05.19 21:00

Verwende eine generische List(of String) statt einem Array.
(Namespace System.Collections.Generic)
Diese Liste kapselt ein Array und stellt die Methoden zur Verfügung
(z.B. Add, Remove, Clear), durch die eine dynamische Anpassung der Zahl
der Elemente vorgenommen werden kann.
Im Klassen-Konstruktor (New) kann ein geeigneter Startwert vorgegeben
werden.

Das Verfahren mit dem timergesteuerten "Reload" hat bei mir bisher stets
funktioniert.
Ich gehe zunächst alle Hauptseiten durch und speichere alle dort vorhandenen
Links zu den Daten und die Links zu Unterseiten in einer Datei, danach lade
ich die jeweils erste Unterseite und notiere alle Links in den ersten Unterseiten
usw.
Dieses Vorgehen funktioniert - ich habe die Verzögerung sogar über DoEvents-
Schleifen realisiert, weil ich zu "faul" war, die Sache genauer zu durchdenken.

Beitrag wurde zuletzt am 05.05.19 um 21:13:10 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 18.05.19 15:30

So, tatsächlich habe ich jetzt (gewünschte) Ergebnisse, zunächst mal Danke, Manfred X

Nach den Meldungen meiner ersten Versuche musste ich ja davon ausgehen, dass DoEvents veraltet sei und schon lange nicht mehr implementiert ist/klappt, schon garnicht in VB.NET.
Ich habe mich aus gegebenem Anlass sehr viel tiefer in die VB.NET-Materie eingearbeitet (meine Vorgehensweise nennt man aber wohl besser "hineingefummelt" ), und jetzt klappt es auch mit dem Application.DoEvent(), wenn der in einer Schleife abwartet, bis die Seite geladen ist.

Der Tipp mit der generischen Liste war ebenfalls ungemein hilfreich, aber die Beschäftigung damit hat etwas gedauert, beinahe seit Deinem Vorposting.

Ich bin da auf ein paar Überraschungen gestoßen, mit denen ich nicht rechnen musste, vor allem der Umgang generischer Listen mit Indizies (ich will nach Fertigstellung der Sammlung, also vollständigem Durchsuchen des Webs, mehrfache identische Einträge entfernen) hat mich total überrascht.

Aber gut, nun kann ich das umständliche Handling mit Arrays, aber auch die Umwege nach dem Anstoßen der Navigation entfernen.

Wie schon zu Beginn geschrieben, dass sich VB.NET dermaßen von VBA unterscheiden würde, damit habe ich nicht gerechnet.

Nebenbei: Die grundsätzlich guten Erklärungen in "https://docs.microsoft.com" haben mich manchmal etwas ungeduldig gemacht, weil um ein kleines hilfreiches Beispiel einer bestimmten Methode, Eigenschaft, wie auch immer, herum mitunter eine umfangreiche "Anwendung" gezeigt wird und der User, also meine Wenigkeit, den Kern herauszufinden hat.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 06.06.19 09:47

Manfred X schrieb:
Zitat:

(..)Ich gehe zunächst alle Hauptseiten durch und speichere alle
dort vorhandenen
Links zu den Daten und die Links zu Unterseiten in einer
Datei, danach lade
ich die jeweils erste Unterseite und notiere alle Links in
den ersten Unterseiten
usw.
Dieses Vorgehen funktioniert - ich habe die Verzögerung sogar
über DoEvents-
Schleifen realisiert, weil ich zu &quot;faul&quot; war, die
Sache genauer zu durchdenken.


So, mittlerweile bin ich an genau dieser Stelle, wobei auch ich von vornherein davon ausgegangen bin, das Ganze "Tannenbaum"-mäßig aufzuziehen...hat soweit auch gut funktioniert, einschl. Deiner Tipps mit den generischen Listen, ich kann gefundene Links jetzt entsprechend separieren, also danach, ob die nur gecheckt werden müssen oder ihrerseits auf eine darunter liegende Seite verlinken, die auch nach Links durchsucht werden muss.

Tatsächlich klappt es nun auch mit dem DoEvents(), sieht hier halt etwas anders aus als der bei VB6

Was mich, mal nebenbei bemerkt, an Code-Beispielen im Internet (warum das Rad neu erfinden müssen, wenn es intakte Lösungen gibt) so immens stört: Fast immer sind die nicht mit hilfreichen Inline-Kommentaren versehen (für mich als Entwickler ein absolutes Muss), und so gut wie immer werden für Variablen-Namen irgendwelche kryptischen Bezeichner benutzt, wo sogar ich als VB-Fachmann manchmal kurz überlegen muss, ob es etwas VB-spezifisches ist oder die "Erfindung" eines findigen Code-Schreibers...wie soll dann erst jemand, der sich mal (z. B. als Hobby) an so etwas versuchen will, herausfinden, ob "StrFndlOJx" eine Anweisung, Methode, Eigenschaft oder doch einfach nur der nichtssagende Name einer Variablen ist, deren Deklaration ggf. nicht einmal im Beispiel-Code erscheint, weil die "Dim"-Statements nicht mit angezeigt werden

Das Ergebnis des letzten General-Testlaufs über das fragliche Web war zufriedenstellend...gestört hat mich noch heftig, dass recht oft die Geräusche/Musik-Sequenzen (zumindest die ersten Takte) zu hören sind.

Ich hatte mir kurz mal Deinen Hinweis auf die Nutzung mit HttpRequest angeschaut, das aber verworfen, weil - losgelöst davon, dass die Webseite derzeit mobil-fähig gemacht wird - nicht sicher ist, ob in absehbarer Zukunft Java-Script eine Rolle spielen wird, und mit dem Gebrauch, egal, in welchem Zusammenhang, würde ich mich offen gestanden überfordert fühlen.

Auf alle Fälle Danke für Deine Hinweise, ich musste zwar sehr viel genauer "nachbuddeln", um das für mich zu übersetzen, aber auch dafür bin ich dankbar, hat mich eher vorangebracht, als mir Beispiel-Codes mit der Überschrift "So geht's" oder "ist doch ganz einfach" anzuschauen

Beitrag wurde zuletzt am 06.06.19 um 09:52:20 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 06.06.19 18:23

Und dazu jetzt doch nochmal ne Frage:

Es funktioniert zwar alles so weit, aber irgendwie hadere ich noch mit folgendem, was auch meiner Unerfahrenheit im Umgang mit Web-Angelegenheiten bezügl. Programmierung geschuldet ist:

Eine Web-Seite, die man mit Firefox oder Chrome oder auch IE (mit dem Edge funktioniert das nicht so einfach) aufruft, kann man bekanntlich per Kontext-Menü nach Maus-Rechtsklick
1) als Htm(l) speichern, ist dann Textformat, kann mit dem Editor gelesen werden
2) sich den Seiten-Quelltext anzeigen lassen und diesen letztlich auch als Textdatei speichern (z. B. copy und paste)

Der Unterschied ist der - die meisten werden es wissen, ich beschreibe es trotzdem nochmal -, dass im Text mit 1) hinter "href=" die vollständigen Links angezeigt werden, mit 2) jedoch jenes Format, welches auch der OuterHtml-Ausgabe gleicht, ausgegeben wird, der Unterschied sieht dann so aus:

1) href="http://www.hauptseite.de/unterseite.htm"
2) href="unterseite.htm"

In der (bisherigen) Nutzung mit dem Webbrowser-Steuerelement und allem, was so dazu gehört, habe ich es stets mit der Ausgabe 2) zutun, muss dann, um prüffähige Links zu erhalten, stets den Link unter 2) an den Hauptlink anfügen.

Meine Frage nun: Gibt es die Möglichkeit, per VB.NET-Code auch an das Format unter 1) zu kommen?

Ich habe doch ein gutes Stück Zeit mit der Suche danach verbracht, leider auch dazu eigentlich überhaupt nichts gefunden, nicht einmal das Statement, dass das nicht geht.
Wenn es wirklich definitiv nicht geht, ist es ok, ich brauch da nur die Gewissheit.

Wenn das aber doch geht, bitte, wie? Was übersehe ich? Ist das so leicht, dass ich nur den Wald vor lauter Bäumen nicht sehe?

Beitrag wurde zuletzt am 06.06.19 um 18:25:42 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nach navigate-Methode werden die Navigated- und DocumentCompleted-Eigenschaften. 
Autor: EKrause
Datum: 13.06.19 19:12

Manfred X schrieb:
Zitat:

(..)Zu dem Zweck kann man vor dem Navigate-Aufruf eine
modulglobal definierte
Datetime-Variable mit der aktuellen Zeit füllen.
Im DocumentCompleted-Event wird diese Zeit gelöscht (Variable
auf Nothing setzen).
Der Timer prüft im Tick-Event, ob eine Startzeit gegeben ist
und bestimmt
ggf. die Differenz zwischen aktueller Zeit und Startzeit. Ist
diese Differenz
zu groß, wird der Navigate-Aufruf erneut
ausgeführt.

Ich komme ja irgendwie immer noch nicht so richtig weiter

Der Hinweis auf Application.DoEvents() war ja hilfreich, und bis zu einem bestimmten Punkt funktioniert der auch wie er soll und es gedacht ist.
Aber plötzlich bleibt das Tool dann doch plötzlich stehen, meistens bei/mit einem bestimmten URL.

Ich habe, um das herauszufinden, das Programm mal bis zu dem Punkt laufen lassen, bevor zu diesem Link navigiert werden soll.

Das Browser-Steuerelement heißt Web_Url1, der Web_Url1.Navigate(New Uri(Link) wird durchgeführt, der Code geht zum Web_Url_Navigated, springt wieder zurück in die Navigate-Sub.
Ich habe gleich hinter dem Navigate-Befehl die Application.DoEvents() eingefügt mit einer Bedingung, die durch die DocumentCompleted-Eigenschaft erfüllt wird, so dass das Programm beim nächsten Rücksprung in das Navigate-Ereignis die Schleife mit Application.DoEvents() verlässt.
Der Code schaut so aus (bitte nicht lachen, ich bin halt VB.NET-Neuling):

    Private Sub Sub_Folge_Url_navigieren_(Url1_Sub_Weiterleitung_ As String)
        Try
            Web_Url1.Navigate(New Uri(Url1_Sub_Weiterleitung_))
            While Web_Url1.Tag <> ""
                Application.DoEvents()
            End While
        Catch Erklaerung1_ As System.UriFormatException
            Return
        End Try
 
    End Sub
 
    Private Sub Web_Url1_Navigated(sender As Object, e As _
      WebBrowserNavigatedEventArgs) Handles
              Web_Url1.Navigated
 
        Url1_Eingabe.Text = Web_Url1.Url.ToString()
 
    End Sub
 
    Private Sub Web_Url1_DocumentCompleted(sender As Object, e As _
      WebBrowserDocumentCompletedEventArgs)
         Handles Web_Url1.DocumentCompleted
        AddHandler CType(sender, WebBrowser).Document.Window.Error,
            AddressOf Window_Error
        Web_Url1.Tag = ""
 
    End Sub
Das Thema ist halt wie geschrieben, dass der Code mit benanntem Url die letzte Sub nicht erreicht und somit in einer Endlos-Schleife hängt (klar, Web_Url1.Tag hat ja Zeichen) und dort nicht mehr herauskommt, auch nicht in die Navigated-Sub.

Ich habe natürlich Dein oben zitiertes Statement mit dem Timer im Kopf, kann aber leider ohne (aussagefähiges) Beispiel nicht viel damit anfangen

Ich bin nunmal leider jemand, der Beispiele zum Verstehen-können und Ausprobieren benötigt, auf diese Weise habe ich mich in der Zwischenzeit z. B. recht gut in die "Geheimnisse" des Umgangs mit generischen Listen, auch mehrdimensionale, hineingearbeitet.
Im Moment komme ich da wirklich nicht weiter, das nervt und frustriert
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel