zoukankan      html  css  js  c++  java
  • .net 内嵌 GeckoWebBrowser (firefox) 核心浏览器

    引用nuget包:

    注意:Geckofx45 nuget包必须是最后引用,否则初始化会出错

    简单示例:

    using Gecko;
    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;
    
    namespace WindowsFormsApp2
    {
        public partial class Form1 : Form
        {
            GeckoWebBrowser gecko;
            public Form1()
            {
                InitializeComponent();
    
                Xpcom.Initialize("Firefox");
    
                gecko = new GeckoWebBrowser();
                gecko.CreateControl();
    
                gecko.NoDefaultContextMenu = true; //禁用右键菜单
    
                gecko.Dock = DockStyle.Fill;
                panel1.Controls.Add(gecko);
                gecko.ProgressChanged += Gecko_ProgressChanged;
                gecko.CreateWindow += Gecko_CreateWindow;
                gecko.DocumentCompleted += Gecko_DocumentCompleted;
                gecko.Navigate("http://www.baidu.com");
    
    
            }
    
            private void Gecko_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e)
            {
                //var executor = new Gecko.JQuery.JQueryExecutor(gecko.Window);  //先获取到jquery对象
    
    
                //executor.ExecuteJQuery("$('#a')");    //然后执行jquery的代码
                using (AutoJSContext context = new AutoJSContext(gecko.Window))
                {
                    string result;
                    context.EvaluateScript("3 + 2;", out result);
                    context.EvaluateScript("'hello' + ' ' + 'world';", out result);
                }
    
    
                progressBar1.Value = 0;
            }
    
            private void Gecko_CreateWindow(object sender, GeckoCreateWindowEventArgs e)
            {
                e.InitialHeight = 500;
                e.InitialWidth = 500;
            }
    
            private void Gecko_ProgressChanged(object sender, GeckoProgressEventArgs e)
            {
                if (e.MaximumProgress == 0 )
                    return;
    
                var value = (int)Math.Min(100, (e.CurrentProgress * 100) / e.MaximumProgress);
                if (value == 100)
                    return;
                progressBar1.Value = value;
            }
        }
    }
  • 相关阅读:
    词典 字符串+DP
    N 色球 数学
    loj6482. LJJ 爱数数
    loj2671. 「NOI2012」骑行川藏
    无标号生成树计数
    uoj272. 【清华集训2016】石家庄的工人阶级队伍比较坚强
    uoj328. 【UTR #3】量子破碎
    loj6402. yww 与校门外的树
    loj6674. 赛道修建
    06:MySQL分组查询子查询笔记6
  • 原文地址:https://www.cnblogs.com/IWings/p/7527304.html
Copyright © 2011-2022 走看看