14.11.12

C# ile GeckoFx Kullanımı - Projeye Ekleme

Uzun zaman sonra teknik bir yazı yazacağız. C# programlama dili ile ilgili.

Visual Studio'da biliyorsunuz webBrowser component'i var. Bu component ile kolayca browser ekleyebiliyoruz projemize.

VS'da default bulunan bu component İE'nin engine'ini kullanıyor. (O'nu da doğru düzgün kullanamıyor ya, o da bir sonraki yazının konusu. Son versiyonunu kullandırtmak için registry'de bir ayar yapmak gerekiyor, ona başka bir yazıda değineceğiz nasip olursa)

Evet, İnternet Explorer'ı beğenmeyenler, ya da uygulaması icabı başka bir browser altyapısı kullanmak isteyenler olabilir. Mesela Chrome altyapısı, Firefox altyapısı.

Evet., şimdi kısaca bunu nasıl yapacağınızı anlatacağız. (VS 2008'de, .NET Framework 3.5)

Bu iş için üretilmiş çeşitli opensource componentler var, biz GeckoFx'i anlatacağız. Bunun haricinde Webkit, CefSharp gibi alternatifler de var.


1. Projemize Referanslar bölümünden, internetten indirdiğimiz Skybound.GeckoFX.src.v1.9.1.0 dosyası içerisindeki bin klasöründe bulunan Skybound.Gecko.dll'i ekliyoruz.

2. Aynı dosyayı toolbox'a sürükle bırak yapıyoruz.(VS 2008'de Debug modda olmamaya dikkat edin ve Form'unuzun Design kısmındayken bu işlemi yapın.)(Not: VS 2010'da bu sürükle bırak işlemi yemiyor, orada sağ tıklayıp "Choose Item" diyorsun, sonra da çıkan pencerede "Browse" butonuna basıp yukarıda yolunu tarif ettiğim dll'i ekliyorsun)

3. İnternetten indirdiğimiz Skybound.GeckoFX.src.v1.9.1.0 dosyasındaki bi klasörünün içindekileri kopyalayıp projemizdeki Debug klasörü altına yapıştırıyoruz.

4. Evet, geldik önemli adıma. Şimdi internetten xulrunner-3.6.26.en-US.win32 dosyasını indiriyoruz, bu dosyanın yine bin klasörünün içini kopyalayıp(yaklaşık 25 MB) C dizini altında oluşturacağımız yeni bir klasöre kopyalıyoruz.

5. Oluşturduğumuz ve içini doldurduğumuz bu yeni klasörün path'ini, formumuzun constructer kısmında


  public Form1()
        {
            InitializeComponent();
          Skybound.Gecko.Xpcom.Initialize(@"C:\XulRunner\");
        }

şeklinde belirtiyoruz.

6. Sürükle bırak yöntemiyle Toolbox'daki Genco komponentimizi formumuza ekliyoruz.

7. Aşağıdaki kod ile url'yi verip uygulamamızı kullanabiliyoruz.

 geckoWebBrowser1.Navigate("http://kuran.diyanet.gov.tr/Kuran.aspx");


Hepsi bu kadar. Aslında basit. Sadece işlemler biraz uzun. Diğer fonksiyonları (refresh, go, stop, back, forward vb. rahatça bulabilirsiniz.)

Burada indirdiğiniz dosyaların versiyonları, birbirleriyle uyumu önemli. Buna dikkat ederek indirmeniz lazım. Benim yukarıda verdiklerim HTML5 uyumlu versiyon, eski versiyonlar da internette mevut, yanılıp da eski versiyonları indirirseniz birtakım uyum problemleri yaşayabilirsiniz.

Merak edenler için hemen söyleyelim, Gecko motorlu browserlardan bazıları : Firefox, Camino, Flock, Thunderbird, Seamonkey, Epiphany, NVU, Netscape, K-Meleon

Ayrıca şu adrese de bir göz atabilirsiniz:

http://smush143.wordpress.com/2010/12/28/embedding-webkit-and-gecko-in-vb-net-application/

Ancak dikkat edin verdiği sürüm sanırım eski.

Bu arada xulrunner kısmını atlarsanız hata alırsınız, onu da belirteyim.

Faydalı olması dileğiyle.


7 yorum:

  1. Biraz konuyu hortlatak gibi olucak ama.. webBrowser.navigate("siteadresi.com");
    da şu hatayı almaktayım..
    Additional information: Cannot call Navigate() before the window handle is created.

    YanıtlayınSil
  2. aga eline sağlık ya 2 gündür uğraşıyorum sonunda seninkine rastladım ve bitirdim projeyi sağolasın

    YanıtlayınSil
    Yanıtlar
    1. Allah kolaylık versin :)

      Sil
    2. mehmet ali bey şimdi bi sorum var bu projenin içinde açılan sayfayı chrome sayfasında açlmasını istiyorum onu nasıl yapabilirim

      Sil
    3. mehmet ali bey şimdi bi sorum var bu projenin içinde açılan sayfayı chrome sayfasında açlmasını istiyorum onu nasıl yapabilirim

      Sil
    4. Bilmiyorum malesef sanırım bu sadece ie ile oluyor, malum c#-microsoft faktörü :)

      Sil
    5. Chrome için selenium framework kullanabilirsiniz.

      Sil

Related Posts Plugin for WordPress, Blogger...