# VBForums CodeBank > CodeBank - Visual Basic .NET >  Mozilla Firefox / Gecko Xulrunner in VB.NET (versions 14 and up)

## Radjesh Klauke

Hi there,

Many people asked me to create a new tutorial for implementing the Gecko Browser in VB.NET. The old tutorial still works fine, but only with the older versions of the dll. If you want to use that for some reason, visit this link

I created this tutorial presuming that you understand (the basics) how to work with VS.

Enough talk and show me!

1) Download the DLL here: https://bitbucket.org/geckofx/geckofx-14.0/downloads
2) Extract it
3) Download the Xulrunner (14!) here: http://ftp.mozilla.org/pub/mozilla.o...eases/14.0b12/
4) Extract the files

5) Create a new project:





6) Add "Reference" to your project:





7) Reference the "geckofx-core-14.dll"  (Copy Local : True)





8) Right-Click your toolbox and add the control "Geckofx-Winforms-14.dll"





9) Select the control from your toolbox





10) Drag the control to your form and resize it (what ever you want to do)





11) Open the Properties of your project and click on "Application" -> "View Application Events"





12) Copy and replace everything with the following code (only if you never used anything in here)


vb.net Code:
Imports Gecko
Imports System.IO
 Namespace My
     ' The following events are available for MyApplication:
    ' 
    ' Startup: Raised when the application starts, before the startup form is created.
    ' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
    ' UnhandledException: Raised if the application encounters an unhandled exception.
    ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
    ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
    Partial Friend Class MyApplication
         Protected Overrides Function OnStartup(ByVal eventArgs As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) As Boolean
             '   set the path to the temp files
            Dim ProfileDirectory As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\your-appname-companyname-folder\DefaultProfile"
            If Not Directory.Exists(ProfileDirectory) Then
                Directory.CreateDirectory(ProfileDirectory)
            End If
             '   set the temp-directory for the gecko
            Xpcom.ProfileDirectory = ProfileDirectory
             '   set the path of the directory where the xulrunner files are located
            Dim xrPath As String = System.Reflection.Assembly.GetExecutingAssembly.Location
            xrPath = xrPath.Substring(0, xrPath.LastIndexOf("\") + 1) & "\xulrunner"
             '   initialize the path
            Xpcom.Initialize(xrPath)
            Return True
        End Function
     End Class
End Namespace

13) Drag and Drop the complete "xulrunner" folder to the Solution Explorer.
14) Select every file (not folder) and set the property to: "Copy if newer"





15) copy and paste code in your Form_Load(...)... event



vb.net Code:
GeckoWebBrowser1.Navigate("http://www.x-impress.com")


16) Run the code and voila  :Wink: 




Remember that I'm only showing you how to implement it. The rest is up to you. Let me know if something is unclear to you.

Happy coding  :Wink:

----------


## vnzagor

Hi Radjesh,

Very nice tutorial and works perfectly. But, I have stumbled upon another issue. :Frown: 
I need to use a different instance of the Gecko control, to do some background scrapping/downloading, while the user works with the main thread's control. The problem is that if I use a new thread, via a background worker, the Gecko control is never initialized!
Seems that xulrunner does not communicate with the new thread or something like that.

Any ideas?

Using VB 2010

----------


## Amerigo

Thank you for the tutorial. I am trying to create a UserControl. It appears that UserControls don't use Application Events, so View Application Events button is disabled so I can't copy the above code there. Any suggestions?
I almost forgot, I had added the contents of the Xulrunner folder to the solution explorer and got 102 errors from some of those files when I tried to build the project.

----------


## CptnVic

This method works through version 21 (of xulrunner and gecko) but when I tried to install ver. 22 (newest at this writing) - there is a missing dll error (geckofx-core-##.dll I think - but it has been awhile now) that is not included in the packages - but I guess still needed.

In the end - I got it to run with ver. 21 and gave up.

Has anyone else conquered version 22 (or higher)>

----------


## RichardSchneider

Right now I am trying to conquer version 22 but I am using the latest version of xulrunner which I think is around 25. Hopefully it will work.

Nothing good came out of that. I expected that. But did you try xulrunner 22.0?

Edit:

Gecko 22 works like a charm (With XULRunner 22.0). It is a lot faster than previous versions I have tried.

----------


## Radjesh Klauke

I work with version 22 atm.

----------


## CptnVic

@Richard:
So, you had no missing dll errors with Gecko 22 and XULRunner 22?  Or, was there something sneaky in the install?

----------


## RichardSchneider

@CptnVic, I have no missing dll errors. There was also no sneaky install. I got the gecko from bitbucket, you can find it here: https://bitbucket.org/geckofx/geckofx-22.0/downloads and it is version 22.0-0.6 it was just updated 3 days ago. Next I got the xulrunner from here: http://ftp.mozilla.org/pub/mozilla.o...22.0/runtimes/
I got this one: xulrunner-22.0.en-US.win32.zip
Direct Link for XULRunner:
http://ftp.mozilla.org/pub/mozilla.o...n-US.win32.zip

Direct link for gecko:
https://bitbucket.org/geckofx/geckof...s-22.0-0.6.zip

Then I just followed his tutorial and it all worked fine.

----------


## RichardSchneider

Also, @Radjesh Klauke, Can you watch youtube videos using gecko 22? I can get to them but once I am on the page the video is on the video never starts it stays as just a black rectangle on the page, no loading either.

----------


## Miklogak

@Radjesh, All the files doesnt exist in the given link.! Secondly the files in the versions online are completely different today even tho the Packages does have the same name.

And last but not least, you did not explain about this part:
Dim ProfileDirectory As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\your-appname-companyname-folder\DefaultProfile"

Which Appname or foldername should I add where it says "your-appname-companyname-folder\DefaultProfile"?

Very confusing, but else I did it all and *thanks for the great tutorial!*

----------


## Jon_E29

How would you actually bundle the whole web browser up into an installer once you're done coding ?

----------


## Radjesh Klauke

Hi Jon. Just the same as you would do another project. You need to include all the files in your build-folder in your installer.

----------


## pierrotm777

This is a very cool tutorial that run very well for me !

Does exist sources example how to use these dlls ?

Thanks

----------


## jhai_salvador

Thank you for this really nice tutorial. I tried v22 and it works like a charm. My only question is how do we suppose to handle popups from CreateWindow2 event of this browser?..

----------


## Zeev

Thanks, you really helped me with my project. I have a question:
When I load pages, sometimes, my mouse cursor move slowly or just stutters until the whole page is finished loading. How can I fix it?

----------


## Radjesh Klauke

@Zeev. Sorry, can't explain that. Try a newer version from Bitbucket: https://bitbucket.org/repo/all?name=geckofx

----------


## jhai_salvador

What is the most stable version of geckofx?

----------


## pdiclaudio

I'm using GeckoFX_28 by VB
How I can load user.js and extentions???
I want stylize the webbrowser by AGENT_SHEET, but I cant find how do 
You have any ideas????

Thank's

----------


## ThePriest

"Unable to load DLL 'xpcom': The specified module could not be found. (Exception from HRESULT: 0x8007007E"

Currently receiving this error. Any idea on how to fix it anyone?

----------


## pdiclaudio

Dear Radjesh,

I used your example, function good. But I have the problems to download file from url. don't start the download dialog box. Do you have any idea how set/start the download?

Thanks

----------


## pdiclaudio

Dear Radjesh,

I used your example, function good. But I have the problems to download file from url. don't start the download dialog box. Do you have any idea how set/start the download?

Thanks

----------


## SaeedSayyadipour

Very useful tutorial!! Thanks!
I have a question. I followed up all steps but when I run it, this error returns on the Xpcom.Initialize(xrPath) command line at ApplicationEvents.vb:

System.EntryPointNotFoundException: 'Unable to find an entry point named 'moz_xmalloc' in DLL 'mozglue'.'

What should I do?

----------


## SaeedSayyadipour

Very useful tutorial!! Thanks!
I have a question. I followed up all steps but when I run it, this error returns on the Xpcom.Initialize(xrPath) command line at ApplicationEvents.vb:

System.EntryPointNotFoundException: 'Unable to find an entry point named 'moz_xmalloc' in DLL 'mozglue'.'

What should I do?

----------

