惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 快乐家++

QMT A股 量化程序开发资料 通过 PyWenCai 模块采集问财涨停数据的例子 均线粘合 【通达信】 MS-SQL事务处理语句 SQL Update:使用一个表的数据更新另一张表 IIS7 伪静态 web.config 配置方法 针对不同.NET版本的条件编译 将Json数据 填充到 实例类 的函数 带查询参数 可分页 的 T-SQL 语句写法 当鼠标经过表格数据行时颜色不同且奇偶行颜色也不同 (纯CSS) JavaScript 版本的 RSA加密库文件 电工葵花宝典 一开关接线方法 c# 执行javascript 脚本 HttpWebRequest出错 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF 秒转换成时分秒 SQL2008中Merge的用法 C#将exe运行程序嵌入到自己的winform窗体中 如何让用户只能访问特定的数据库(MSSQL) 委托、回调 Lambda表达式书写方式
CefSharp 使用备忘录
快乐家++ · 2020-02-02 · via 博客园 - 快乐家++

Form1.cs

using CefSharp;
using CefSharp.WinForms;
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 WindowsFormsApp1
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private ChromiumWebBrowser browser = null;
        private void Form1_Load(object sender, EventArgs e)
        {

        }



        private void button1_Click(object sender, EventArgs e)
        {
            if (browser != null) return;
            var settings = new CefSettings();
            //设置语言环境是中文环境
            settings.Locale = "zh_CN";
            //浏览器缓存的路径,可以设置到某个磁盘,默认设置是在软件运行目录下面。
            settings.CachePath = "cache";
            //让浏览器的消息循环在一个单独的线程中执行,建议设置成true,具体含义看看浏览器消息处理。
            settings.MultiThreadedMessageLoop = true;
            //这个我理解不到,只有看源码的注释;
            settings.ExternalMessagePump = false;
            //去掉gpu,否则chrome显示有问题
            settings.CefCommandLineArgs.Add("disable-gpu", "1");
            //远程调试端口
            settings.RemoteDebuggingPort = 33229;
            //设置代理服务器
            settings.CefCommandLineArgs.Add("proxyserver", "192.168.1.2:8888");
            Cef.Initialize(settings);
            CefSharpSettings.LegacyJavascriptBindingEnabled = true;
            browser = new ChromiumWebBrowser("http://127.0.0.1:8011/a.aspx");
            browser.ActivateBrowserOnCreation = false;
            browser.Dock = System.Windows.Forms.DockStyle.Fill;
            browser.Location = new System.Drawing.Point(0, 0);
            browser.Name = "chromiumWebBrowser1";
            browser.Size = new System.Drawing.Size(800, 450);
            browser.TabIndex = 0;
            this.Controls.Add(browser);
            browser.JavascriptObjectRepository.ResolveObject += (s, eve) =>
            {
                var repo = eve.ObjectRepository;
                if (eve.ObjectName == "jsObj")
                {
                    repo.Register("jsObj", new CallbackObjectForJs(), isAsync: true, options: BindingOptions.DefaultBinder);
                }
            };
        }

        private void button2_Click(object sender, EventArgs e)
        {
            browser.Reload();
        }
    }

    public class CallbackObjectForJs
    {
        public void showMessage(string msg)
        {
            MessageBox.Show(msg);
        }
        public void t1(string mm)
        {
            MessageBox.Show(mm);
        }
        public string t2()
        {
            return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        }
    }
}

a.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="a.aspx.cs" Inherits="a" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js" type="text/javascript"></script>


    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <a href="#" id="btnOK" class="easyui-linkbutton" iconcls="icon-ok" style="width: 100%; height: 32px">塞钱进红包</a>
        <div>
            <input id="Text1" type="text" /><input id="Button1" type="button" value="button" />
        </div>
        <script type="text/javascript">
            CefSharp.BindObjectAsync("jsObj");
            $(function () {
                $('#Button1').click(function () {
                    jsObj.t2().then((r) => {
                        $("#Text1").val(r);
                    })
                });
            })
        </script>
    </form>
</body>
</html>

Download the  Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019.

https://blog.csdn.net/qiaohuyue/article/details/94737881