Browser starten und Status (DocumentComplete) abfragen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von DerAbsoluteAnfänger.

    Browser starten und Status (DocumentComplete) abfragen

    Hallo,

    vorab sei kurz erwähnt, dass ich beim Präfix einfach einmal "VB 2008" gewählt habe.
    Im Grunde ist mir die Version egal, da ich neben VB6 auch VB2008 und VB2010
    im Einsatz habe. Mir geht es primär um das "ob" und "wie".
    Später kann man den Code noch anpassen bzw. umschreiben.

    Problemstellung/-beschreibung:
    1.) Ich möchte gerne meinen Standardbrowser mit einer vorgegebenen URL starten lassen.
    2.) Sobald die Seite geladen ist, möchte ich benachrichtigt werden.
    3.) HTML-Quelltext abrufen oder gar Formularfelder ausfüllen

    Besonderheiten bzw. Anforderungen:
    -keine Steuerelemente auf der Form (.dll/.ocx, weder iframe.dll, noch shdocvw.dll und mozilla plug)
    -kein Serveranfrage per HTTPRequest, INET, WinSock, TCP/IP, Get/Post usw.

    So, den Standardbrowser kann ich schon einmal starten und eine festgelegte URL übergeben.
    Dies ist kein Problem, denn dazu gibt es ja hier und v.a. allgemein im Internet mehr als genug
    Beispiele und Anleitungen. Dies habe ich nun mit VB6 getestet. Mit VB2008/2010 geht dies ebenfalls
    recht einfach. Soweit komme ich also.

    Jetzt habe ich aber ein kleines bzw. für mich sehr großes Problem:
    Wenn ich nun den Firefox bzw. irgendeinen anderen Browser starten und die URL laden lasse,
    dann funktioniert dies wunderbar. Sowohl stets neue Fenster oder alte Fenster aktualisiert.
    Jedoch interessiert mich nun brennend, wie ich denn den Status bzw. generell diverse Ereignisse
    oder gar den Status von externen Fenstern (Browser) abfragen kann?
    Also eine Art Kommunikation zwischen VB6/2008/2010 und Firefox...

    Vorerst wäre ich schon einmal zufrieden, wenn mein Programm eine Messagebox wiedergibt,
    wenn die URL im Browser xyz vollständig geladen wurde (Website xyz wurde erfolgreich geladen). Diesbezüglich suche ich mir schon seit Wochen einen Wolf. Ich finde einfach nichts oder habe zu wenig Fachwissen, um nach den Stichworten bzw. Fachbegriffen zu suchen.
    Das Grundproblem bei der Suche ist ja, dass man ohne Fachbegriffe auch keine gescheiten
    Ergebnisse bekommt. Mit einer laienhafter Beschreibung kommt man bei Google nicht weiter.

    Füge ich diverse .dll/.ocx (ieframe.dll, shdocvw.dll, mozilla-plugin) als Verweis hinzu oder lege diese
    gar als Control auf der Form ab, dann sehe ich sofort alle möglichen Ereignisse, Methoden usw.
    Kann dann natürlich auch extern den IE starten oder den IE auf der Form benutzen und entsprechend
    ablesen und agieren. Dies ist ja keine KUnst und somit kein Problem.
    Dies wäre aber zu einfach und so will ich es auch nicht.
    Mich interessiert als neugieriger Mensch das "wie" generell.

    Bei VB6 usw. gab es ja (nur ein Beispiel, es gibt sicherlich andere Möglichkeiten, aber ich will diesbezüglich das "wie" wissen) auch noch die Möglichkeit, dass man per
    >WebBrowser1.Document.documentElement.outerHTML< usw. den Quelltext einlesen konnte.
    Dies geht natürlich auch in VB2008/VB2010. Nur, wie geht dies extern?

    Nun ja, der Höhepunkt der ganzen Sache wäre nun, dass man danach noch Daten an den Firefox
    senden soll => Automatisches ausfüllen von Formulardaten. Bei VB6 (ja, auch bei VB2008/2010) konnte man ja bequem per >getelementbyid<, >getelementbytagname<, >document.forms(0)...<
    Formularfelder ausfüllen. Alles kein Thema, nur wie geht dies extern?

    Mit Steuerelementen und Verweisen komme ich klar. Alles kein Problem.
    Ich frage mich nur, ob und wie dies geht, wenn ich einen Browser (FF, IE usw.) direkt starte?
    Letztlich soll auf der Form nur ein CommandButton sein, der eben den Browser startet.

    Also grundsätzlich:
    Wie frage ich den Status bzw. generell Ereignisse ab, wenn der Browser per
    Shell/ShellExecute/Open/OpenUrl/Process.Start gestartet wurde?
    (ja, man kann unterschiedlich starten, ich weiß)

    Wie rufe ich dann auch noch den Quelltext ab bzw. übergebe diesen?

    Wie sende ich z.B. Daten an Formularfelder?

    Hinweis:
    Über Sinn, Zweck, Unsinn und Co. möchte ich hier nicht diskutieren.
    Mir ist bewusst, dass man diverse Dinge per Steuerelemente, Verweise usw. bequem umsetzen kann.
    Ich gehe aber etwas weiter und möchte lernen. Daher kam ich irgendwie auf die Frage und somit zum Problem. Hier habe ich einmal VB6 angesprochen, aber kann dies durchaus mit VB2008/2010.
    Demnach ist es mir egal, ob man dies nun mit VB6, VB2008 oder VB2010 machen kann.
    Für jede Hilfestellung bin ich sehr dankbar.

    So, wer kann & mag denn helfen?

    Links, Tipps, Bücher, Tutorials und Beispielcode nehme ich sehr gerne an.
    Ob es nun C#, C++, Delphi, (ASM^^), Java, Eclipse usw. ist, ist mir egal.
    Da hier aber ein VB-Forum ist und ich in den anderen Sprache nicht so firm bin,
    wäre mir irgendein VB lieber. Zur Not ginge auch noch PowerBasic und BlitzBasic.

    Vielen Dank