HTML & VB via GeckoWebBrowser Problemstellung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 53 Antworten in diesem Thema. Der letzte Beitrag () ist von Popa21.

    Popa21 schrieb:

    Bei einen normalen Webbrowser ging es
    Ist leider auch Gecko :/
    Hab aber jetzt durch Ausprobieren den Code daraus gemacht (gibt keine Fehlermeldungen):

    VB.NET-Quellcode

    1. Dim test As GeckoHtmlElement = GeckoWebBrowser1.Document.GetElementsByClassName("")(0)
    2. test.Focus()
    3. SendKeys.Send("{ENTER}")


    Im Codeeditor keine Fehler. Sobald ich das Programm aber Starte und die entsprechende Taste betätige, kommt das als vom Benutzer nicht behandelte Ausnahme:

    Quellcode

    1. System.InvalidCastException: "Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Gecko.nsIWebBrowser" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{33E9D001-CAAB-4BA9-8961-54902F197202}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE))."


    Kann damit leider nichts anfangen..

    Popa21 schrieb:

    Kommentiere mal die Zeilen aus, und schau, ob der Rest geht
    Hab probier, liegt allein an dieser Zeile:

    VB.NET-Quellcode

    1. Dim test As GeckoHtmlElement = GeckoWebBrowser1.Document.GetElementsByClassName("icon icon-play toggle-play")(0)

    Popa21 schrieb:

    Probier mal DirectCast

    Ich weiß leider nicht, wie das funktioniert... Ist das in dem Fall relevant? Kenne mich da null aus.

    Popa21 schrieb:

    Oder CType:
    [vbnet]... = CType(..., GeckoHtmlElement)[/vb net]
    Danke, probiere beide mal aus, ich weiß aber immer noch nicht wirklich, wie CType und DirectCast funktionieren. Könntest du das ganz kurz erklären und was ich dann durch das ... ersetzen muss? Habe im Web nur vermehrt Englische Tutorials gefunden, ist schwer etwas neues und dann noch auf Englisch, wo man vlt. nicht alle Wörter versteht, zu lernen.

    Popa21 schrieb:

    Beim ersten musst die Dim Sache hintuen, beim zweiten
    Ich komm mir grad echt blöd vor, dass ich jetzt nochmal nachfragen muss, sorry. also erstmal ersten = DirectCast zweites= CType? Oder meinst du die jeweiligen Items die das , abtrennt, mit ersten und zweiten? Und Dim Sache = GeckoHtmlElement?
    Sorry nochmal

    Popa21 schrieb:

    ​Dim Sache As GeckoHtmlElement = CType(GeckoWebBrowser1.Document.GetElementsByClassName("toggle-play")(0), GeckoHtmlElement)
    Danke, hab mich ziemlich blöd angestellt :/
    Bei CType und DirectCast bleibt aber die Fehlermeldung:

    Quellcode

    1. System.InvalidCastException: "Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Gecko.nsIWebBrowser" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{33E9D001-CAAB-4BA9-8961-54902F197202}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE))."
    Das sieht für mich eher nach einen internen Fehler in Gecko aus.
    Edit:
    @Developement hab etwas im selben Forum gefunden:
    ​Problem gelöst. Einfach Xulrunner 1.9.1.19 verwenden und alles klappt. :thumbsup:

    GeckoFx und der Quellcode einer Webseite
    Bei den Maßen der Einfachheit stößt man an Grenzen, aber: "Es geht immer komplizierter".

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Popa21“ ()

    Weiß nicht, lade dir mal die Zip runter, mit Google geht's dann schon.
    Edit:
    @Developement lösch mal alle Verweise, die irgendwas mit Xulrunner zutun haben. Danach lösche alle DLLs, die mit Xulrunner zutun haben. Packe die neue DLLs in den Ordner und setze wieder Verweise auf sie.
    Bei den Maßen der Einfachheit stößt man an Grenzen, aber: "Es geht immer komplizierter".

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Popa21“ ()

    Popa21 schrieb:

    Packe die neue DLLs in den Ordner und setze wieder Verweise auf sie.
    Da wurden zuvor keine Verweise gesetzt, zumindest ist nichts zu finden im Verweisemanager... Habe jetzt den Firefox Ordner mit dem gesamten Inhalt des gedownloadeten XULRunners (da sind jetzt Ordner drin, die davor gar nicht da waren, davor wurde der Firefox Ordner ja von dem NuGet Paket automatisch erstellt...). Klappt nicht.

    Gecko bringt mich echt immer wieder zum Verzweifeln..