Firefox Webrowser For VBA

03.01.2021 tarihli Güncelleme (detaylar için tıklayın)

    Bildiğiniz gibi Internet Explorer uygulması teknolojik açıdan artık geri kaldı. Yeni nesil web sayfalarında JavaScript hataları veya tarayıcı uyumsuzluğu gibi bildirimlerle karşılaşmışsınızdır büyük ihtimalle.

    Bu sebeple, VBA için adapte edebileceğim bir Visual Studio projesi olup olmadığına baktığımda Chrome için CefSharp ve Firefox için Geckofx projeleriyle karşılaştım. CefSharp'ta standart DOM arayüzü hazır olarak gelmediği için bu projeyi şimdilik askıya alarak Firefox çekirdeği için olan Geckofx C# (https://www.nuget.org/profiles/geckofx) projesi üzerine ActiveX dll yazdım.

    Firefox Webrowser DOM arayüzü IE ile hemen hemen aynıdır ve kullanımı da oldukça kolaydır. İster UserForm üzerinde denetim olarak, isterse sınıf ve üyeleri otomasyon olarak kullanılabilir. Ayrıca kullanıcının işini kolaylaştıracak ilave ve değişiklikler de mevcuttur. Kurulum klasöründe Examples isimli klasörde öne çıkan özellikleri içeren örnekleri bulabilirsiniz.

    Kurulum için kullandığınız MS Office mimarisine göre 32 veya 64 bit (Windows mimarisi ile karıştırmayın) Installer & Uninstaller uygulamasını yazının sonudaki bağlantıdan indirerek kurmanız gerekiyor. Eğer sisteminizde hem 32, hem de 64 bit MS Office yüklüyse ve her ikisi için de kullanabilmeyi istiyorsanız yazının sonundaki bağlantıdan iki versiyonu da indirip kurabilirsiniz. Eğer Windows hesabınız "Installer" uygulamasını "Yönetici" modunda çalıştırmaya izin vermiyorsa Installer uygulaması sistem Registry girişlerin HKCU düğümü altına yazmayı deneyecek.

    Kurulum ekranında Install butonuna basarak kurulumu tamamlayın. Bu uygulama, aynı zamanda bu yazılımın bilgisayarınızda kalıntı bırakmadan kaldırılmasına da yarayacak. Ugulamayı sonra çalıştırdığınızda nesne sisteminizde kurulu ise, ekranda Uninstall butonu görünecektir. 


    Kurulumun başarılı tamamlandığı mesajını aldıktan sonra hemen kullanmaya başlayabiliriz. VBE penceresine giderek denetimi "Additional Controls" penceresine ekleyelim.


 

    Seçim işaretlendikten sonra browser Firefox simgesi gelecektir. Artık UserForm üzerine çizebiliriz.


Vee, ilk sayfa...

Private Sub CommandButton1_Click()
    'Ref: Firefox WebBrowser For VBA
    Dim os    As New OSInfo
    Dim agent As String
    
    'It is not mandatory to assign a User-Agent, but pages such as Google and Whatsup-Web
    'to be able to check the page format or browser version information to be loaded
    'Needs Navigator information in order.
    '
    '64 bit Windows 10 sample ...
    'Mozilla / 5.0 (Windows NT 10.0; Win64; x64; rv: 60.0) Gecko / 20100101 Firefox / 60.0
    '------------------------------------------------- -----------------------------
    '32 bit Windows 10 sample ...
    'Mozilla / 5.0 (Windows NT 10.0; rv: 60.0) Gecko / 20100101 Firefox / 60.0
    '
    agent = "Mozilla / 5.0 ({0} {1}. {2}; {3} rv: 60.0) Gecko / 20100101 Firefox / 60.0"
    agent = Replace(agent, "{0}", os.PlatformID)
    agent = Replace(agent, "{1}", os.Major)
    agent = Replace(agent, "{2}", os.Minor)
    agent = IIf(os.Is64bitOperatingSystem, Replace(agent, "{3}", "Win64; x64;"), "")
    '
    Debug.Print agent
    '
    FirefoxBrowser1.Preferences("general.useragent.override") = agent
    FirefoxBrowser1.Preferences("intl.accept_languages") = "tr-TR, tr, en-US, en"
    '
    FirefoxBrowser1.Navigate "https://web.whatsapp.com"
    
End Sub




Latebind (geç bağlama) için CreateObject metodu ile başlatılabilecek Prog Id listesi aşağıdadır.

  • CreateObject("FirefoxBrowser")
  • CreateObject("AutoJSContext")
  • CreateObject("GeckoBitmap")
  • CreateObject("GeckoFont")
  • CreateObject("JQueryExecutor")
  • CreateObject("LauncherDialog")
  • CreateObject("MimeInputStream")
  • CreateObject("OSInfo")
  • CreateObject("PrinterSetttings")
  • CreateObject("StringCollection")
  • CreateObject("WebProgressListener")

 

Güncelleme içerikleri:

  • GeckoPreferences sınıfı kaldırıldı. Bunun yerine FirefoxBrowser sınıfı içersinde Preferences özelliği (Property) olarak eklendi.
  • Güvenlik pop-up uyarılarını (SSL/Certificate) engellemek için yöntemler eklendi. "Examples" klasörü içersinde 12 nolu klasör içindeki dosyayı inceleyin.
  • Kayıt defteri (Registry) girişleri RegAsm.exe metodu yerine, artık manuel yazılmakta. Böylelikle Windows yönetsel hakları kısıtlanmış kullanılar için registry girişleri HKCU anahtarı altına yazılacak. Installer/Unistaller uygulaması bunu açılışta kendisi otomatik seçer.
  • DLL'in GUID anahtarları seri biçimde olacak şekilde tamamen değişti. Kayıt defterinde nesne anahtarlarını {EA14F332-871B-497D-AFAD-XXXXXXXXXXXX} olarak görebilirsiniz.
  • AutoJSContext sınıfı "Dispose" edilirken Excel uygulamasının çökmesine (app crash) neden olan bir hata düzeltildi.

 

Kurulum indirme bağlantıları:

32 bit : Installer/Uninstaller (39,8 MB)  

64 bit : Installer/Uninstaller (45,0 MB)  

************************************

Yazılım geliştiricileri için Visual Studio proje kaynak kodları için bana ulaşın. Vereceğim izin ile indirebilirsiniz.

32 bit Project (27,8 MB)

64 bit Project (31,2 MB)

Yorumlar

Yorum Gönder

Bu blogdaki popüler yayınlar

VBA: Kombine Stok Değerleme Yöntemleri (FIFO, LIFO, Ağırlıklı Ortalama, Hareketli Ortalama)

VBA: Common controls Enter/Exit events and fast WinAPI call with Type Library