Firefox Engine (GeckoFX + xulrunner) Version 29(+) in VB.NET

    • VB.NET

    Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von clubstorm.

      Firefox Engine (GeckoFX + xulrunner) Version 29(+) in VB.NET

      Hallo,

      da ich bis jetzt kein deutsches Tutorial für die aktuelle Gecko Version gefunden hab, schreib ich das hier :D
      Das ganze wurde bis auf Version 29 getestet und funktioniert, sollte aber genauso mit Version 30 und Folgenden klappen.

      Das ist mein erstes Tutorial in dem Forum hier und ich hoffe, dass alles passt. :)

      1. Download
      Ihr müsst folgende Sachen downloaden:
      2. Entpacken
      Die beiden gedownloadeten ZIPs entpackt ihr jetzt,
      bei der GeckoFX - ZIP braucht ihr die Geckofx-Core.dll und die Geckofx-Winforms.dll
      und bei der XULRunner - ZIP den ganzen xulrunner Ordner.

      3. Gecko einbinden
      Nun müsst ihr Gecko in euer Projekt einbinden.

      1 Ihr macht einen Rechtsklick auf euren Projektnamen im Projektmappen-Explorer - Verweis hinzufügen... und wählt im neu erschienenem Fenster den 'Durchsuchen'-Tab aus.
      Dort sucht ihr die Geckofx-Core.dll Datei und bindet diese mit einem Klick auf 'OK' ein.

      2 Als nächstes müsst ihr das Gecko Control in eure Toolbox einfügen. Dazu macht ihr einen Rechtsklick auf eure Toolbox - Elemente auswählen... und wählt im neu erschienenem Fenster den '.NET Framework Komponenten'-Tab aus.
      Dort klickt ihr unten rechts auf 'Durchsuchen...', wählt im Durchsuchen-Fenster die Geckofx-Winforms.dll Datei aus und fügt diese mit 'Öffnen' als .NET Control ein. Ihr könnt anschließend im 'Toolboxelemente auswählen' Fenster per Klick auf 'OK' das Hinzufügen abschließen.


      4. Anwendungsereignisse
      Nun müsst ihr die Anwendungsereignisse öffnen:


      Dort fügt ihr (falls die Anwendungsereignisse noch nicht benutzt wurden) diesen Code ein:

      VB.NET-Quellcode

      1. Option Strict On
      2. Imports Gecko
      3. Imports System.IO
      4. Namespace My
      5. Partial Friend Class MyApplication
      6. Protected Overrides Function OnStartup(ByVal eventArgs As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) As Boolean
      7. 'Pfad für temporäre Dateien festlegen (kann geändert werden natürlich)
      8. Dim ProfileDirectory As String = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "programmname", "DefaultProfile")
      9. Dim di as IO.DirectoryInfo = New IO.DirectoryInfo(ProfileDirectory)
      10. If not di.Exists Then
      11. Directory.CreateDirectory(ProfileDirectory)
      12. End If
      13. 'Profilordner für Gecko auf den oben festgelegten stellen
      14. Xpcom.ProfileDirectory = ProfileDirectory
      15. 'Pfad des Ortes, an dem der xulrunner Ordner liegt, festlegen
      16. Dim xrPath As String = System.Reflection.Assembly.GetExecutingAssembly.Location
      17. xrPath = IO.Path.Combine(xrPath.Substring(0, xrPath.LastIndexOf("") + 1), "xulrunner")
      18. 'Pfad laden für Gecko
      19. Xpcom.Initialize(xrPath)
      20. Return True
      21. End Function
      22. End Class
      23. End Namespace

      Der Code wird ausgeführt, wenn eure Applikation startet und lässt xulrunner Dateien laden & weisst Gecko einen Profilpfad zu.

      5. XULRunner Ordner in Projekt einbinden
      Nun muss der XULRunner Ordner noch dem Projekt hinzugefügt werden. Dazu zieht ihr den kompletten xulrunner Ordner, den ihr eben entpackt habt, auf den Projektmappen-Explorer, damit es so aussieht:


      Damit die Dateien aktualisiert werden, müsst ihr alle Dateien (keine Ordner!) im XULRunner Ordner sowie in den Unterordnern auswählen
      und dann in den Eigenschaften In Ausgabeverzeichnis kopieren auf Kopieren, wenn neuer stellen:


      6. Jetzt könnt ihr weitermachen...
      Ihr könnt nun aus eurer Toolbox einen GeckoWebBrowser auf eure Form ziehen und diesen selbst programmieren.
      Um das navigieren zu testen, könnt ihr in das Form_Load Ereignis folgenden Code einfügen:

      VB.NET-Quellcode

      1. GeckoWebBrowser1.Navigate("http://vb-paradise.de")



      Viel Spaß mit den aktuellen Gecko Versionen! :)
      Quelle (englisches Tutorial): vbforums.com

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „CUUKiEE“ ()

      @iEi
      Meinst du die Downloads, die du mit der Engine startest?
      Darum geht es hier nicht, das ist aber programmierbar. Ich wollte nur erklären, wie mans einbindet.

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

      Anstatt hier nur Code und Bilder zu zeigen wären Erklärungen doch auch angebracht oder?
      Zum Beispiel würde ich gerne wissen wieso ich das OnStarup Event verändern muss, damals als ich mit GeckoFX gearbeitet habe, war dies nicht von nöten.
      Ist das jetzt Pflicht?
      @Gather Danke erstmal für Kritik :D
      Wenn das Verändern des StartUp Events nicht nötig wäre, wäre es nicht mit im Tutorial drin.
      Ich weiss nicht wie es früher war und was es für Unterschiede in der Einbindung gibt, da ich bisher nur mit Version 14+ gearbeitet habe.
      Ich habe trotzdem noch eine Zeile unter dem StartUp Event eingefügt, obwohl das durch die Kommentare selbsterklärend sein sollte:
      Der Code wird ausgeführt, wenn eure Applikation startet und lässt xulrunner Dateien laden & weisst Gecko einen Profilpfad zu.
      Hallo leute, :)

      ich habe grade mal das tut getestet und habe mal ein paar verschiedene Versionen heruntergeladen.
      Allerdings fehlt in jedem archiv die 'Geckofx-Winforms.dll' und kann somit nicht eingebunden werden.
      Auch bei der Version 21 kann ich die im archiv nicht finden.

      Habt Ihr das selbe Problem bzw. kann da jemand helfen?
      Klar, wenn die DLL nicht gefunden wurde, scheint sie wohl nicht da zu sein. Check das doch mal. "Kopieren, wenn neuer" hast du gesetzt?

      BTW @CUUKiEE

      Visual Basic-Quellcode

      1. 'Pfad des Ortes, an dem der xulrunner Ordner liegt, festlegen
      2. Dim xrPath As String = System.Reflection.Assembly.GetExecutingAssembly.Location
      3. xrPath = IO.Path.Combine(xrPath.Substring(0, xrPath.LastIndexOf("") + 1), "xulrunner")

      Warum so kompliziert?

      Visual Basic-Quellcode

      1. Dim xrPath As String = Path.Combine(Application.StartupPath, "xulrunner")
      Hallo,

      Kann man auch auf den Profielpfad verzichten wen es nur um die Anzeige von HTML geht und Bockmarking etc selbst zu verwalten sind. Ich nutze Aktuell noch das ie controll weil ich da wunderbar die Navigation abfangen kann für die implementierung eigener Protokolle.

      LG, J. Herbrich
      Vermutlich hab' ich da was verbockt:
      Fehler 2 "Path" ist kein Member von "IO". C:\Users\Sky\documents\visual studio 2013\Projects\GeckoBrowser\GeckoBrowserApplicationEvents.vb 13 46 GeckoBrowser
      Was soll ich da machen? Ich nutze und benötige das .NET Framework 4.5. Kann es daran liegen?

      Ich habe die IO.s aus der ApplicationEvents.vb entfernt. Keine Fehler mehr, dafür eine Fehlermeldung beim Debuggen:

      Ein Ausnahmefehler des Typs "System.DllNotFoundException" ist in Geckofx-Core.dll aufgetreten. Zusätzliche Informationen: Die DLL "xul": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.

      Ich verwende die GeckoFX-Version 33.0-0.9 und die xulrunner-Version 41.0.2.en-US.win32.
      There are only 10 types of poeple in the world: Those who understand binary and those who don't.
      wo finde ich die oder eine der aktuellen Versionen mit den dazugehörigen dll und dem xulrunner? Ich bin schon seit Stunden an ausprobieren und suchen aber finde bis jetzt nichts was von der Versionsnummer zusammenpasst. Habe jetzt die 45.0.20.0, die dlls (die komischerweise immer in den Archiven fehlen) auf einer anderen Seite gefunden und den Xulrunner in 41.0 oder so.
      Wunderschönen guten Tag :)

      Ich möchte eine klein Kritik zu der Anleitung hier Posten, den bei der Anleitung fehlt etwas.

      XulRunner Ordner:

      Was soll mit diesem Ordner bzw dem Inhalt des Ordners gemacht werden nach dem man ihn entpackt hat, soll man den Ordner bzw Inhalt irgendwo hinkoprieren oder sonst was, diese erklärung Fehlt,
      Ich denke da jetzt klar Automatisch, wohl ins Projekt verzeichnis, aber ist das richtig?

      Bitte diese Erklärung hinzufügen :)

      Amsonsten, ist die Anleitung soweit sehr gut :)

      vielen dank

      mfg
      Bei mir funktioniert der Ereigniscode nicht, ich bekomme da nur Fehlermeldungen, ich glaube du hast vergessen, da für Anfänger was zu erklären und zwar die Deklarationen, ich zb weiß nicht was genau ich da tun soll.

      Die Fehlermeldungen:

      VB.NET-Quellcode

      1. Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
      2. Fehler BC30456 "Path" ist kein Member von "Gecko.IO". Internet Speedtester 2018 C:\Users\Wilhelm\source\repos\Internet Speedtester 2018\Internet Speedtester 2018\ApplicationEvents.vb 11 Aktiv
      3. Fehler BC30002 Der Typ "IO.DirectoryInfo" ist nicht definiert. Internet Speedtester 2018 C:\Users\Wilhelm\source\repos\Internet Speedtester 2018\Internet Speedtester 2018\ApplicationEvents.vb 12 Aktiv
      4. Fehler BC30002 Der Typ "IO.DirectoryInfo" ist nicht definiert. Internet Speedtester 2018 C:\Users\Wilhelm\source\repos\Internet Speedtester 2018\Internet Speedtester 2018\ApplicationEvents.vb 12 Aktiv
      5. Fehler BC30456 "Path" ist kein Member von "Gecko.IO". Internet Speedtester 2018 C:\Users\Wilhelm\source\repos\Internet Speedtester 2018\Internet Speedtester 2018\ApplicationEvents.vb 22 Aktiv