当前位置: 首页 > 工具软件 > Gecko-Java > 使用案例 >

c#调用Gecko

齐涛
2023-12-01

       公司要求采集赛事的整体信息,需要多个网站抓取数据整合。采用ie的内核随着时间的递推,内存消耗越来越多,无奈该用firefox的内核。

       自决心采用Gecko后掉入深坑,调用基础dll都无法加载。通过查找国外网站信息才解决问题,整体流程整理出来,方便以后的同胞采用。

我的开发环境是Visual Studio 2017,windows7 企业版 64位。

1.一定要先安装vcredist_x86.exe,这个是干嘛的现在没时间去查,但是没有这个程序会加载不了dll。

2.下载geckofx-geckofx-33.0.zip

3.下载xulrunner-33.0.en-US.win32.sdk.zip解压xulrunner-33.0.en-US.win32.sdk,然后里面整个bin文件修改名称为xulrunner放入我们的bin文件同级目录下。

4.解决方案在手工把整个xulrunner以文件夹方式加载进入。

5.NuGet使用 ->菜单->工具->NuGet包管理器->管理解决方案的NuGet包程序,打开后搜索并安装Gecko,安装Gecko45

代码:

添加Panel控件System.Windows.Forms.Panel pnlMain;   

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Gecko;

namespace WebTest
{
    public partial class Form1 : Form
    {
        private GeckoWebBrowser gfxBrowser;

        public Form1()
        {
            InitializeComponent();
            InitBrowser();
        }
        private void InitBrowser()
        {
            //System.IO.Directory.SetCurrentDirectory("D:\\selfprogram\\firefoxtest\\WebTest\\WebTest\\xulrunner");
            Xpcom.Initialize("Firefox");
            Gecko.Xpcom.Initialize("xulrunner");

            gfxBrowser = new GeckoWebBrowser() { Dock = DockStyle.Fill };
            gfxBrowser.Parent = pnlMain;
            gfxBrowser.Navigate("www.baidu.com");

            //gfxBrowser.AddMessageEventListener("call", ((string p) => { call(p); }));
            //gfxBrowser.AddMessageEventListener("callMe", ((string p) => { callMe(p); }));
        }

    }
}
 

 

 类似资料: