当前位置:首页 > 奇闻趣事

cefsharp C#使用CefSharp开源库开发Chrome 浏览器

一.导言

这个东西我以前没接触过,但是在公司项目中有用到,就顺便研究一下。今天刚测试了WinForm。我有时间尝试一下WPF是如何实施的。一开始很乱,有点麻烦,但是慢慢整理出来也不是很难。

二、开发步骤

1.下载并安装该程序集

当前程序集的最新版本是69.0.0。如果你想直接下载程序集的动态链接库,你可以从这个地址下载https://www.nuget.org/packages/CefSharp.WinForms/69.0.0。解释一下,以后的版本可能会变,具体地址也可能会变。所有的依赖库都可以通过nuget轻松获取。如果你的网络不好,可以先下载,然后添加项目参考。效果如下:

如果我们用Windows操作系统开发WinForm应用,可以用NuGet包来安装:

1PM>。安装包CefSharp。WinForms-69.0版。023网络命令行界面:45 >dotnet add软件包CefSharp。WinForms-69.0版。89 >;加入CefSharp。WinForms-69.0版。0

2.代码实现

1)主要形式实现:

主要形式如图所示:

主表单代码:

1使用头孢夏普。WinForms2使用系统。Windows . Forms34 NameSpaceCromWebbrowserforwindows forms 5 { 6 publipartialclasfrmbrower:form 7 { 8 privateCromWebbrowser web browser;910 publicfrmbrower()11 { 12 initializecomponent();13这。Load+= form 1 _ Load;14}1516privatevoidForm1_Load(对象发送器,系统。EventArgs e)17 { 18 web browser = NewCromWebbrowser(" www . cn blog . com ");19网络浏览器。Dock = DockStyle。填充;20 this . pnlcontainer . controls . add(网页浏览器);21网络浏览器。load(" www . cn blogs . com ");22 } 2324 private void btenter _ Click(对象发送者,系统。event args e)25 { 26 child form child = new child form(TxTurl。文字);27儿童。show();28}29}30}

2)子窗体实现:

子窗体如图:

代码实现:

1使用头孢夏普。WinForms2使用系统;3使用系统。Windows . Forms45 namespacromiumwebbrowserforwindows forms 6 { 7 publipartialclaschildform:form 8 { 9 privatecromiumwebbrowser web browser;10privatestringurl11 publicchildform()12 { 13 initializecomponent();14这。Load+= child form _ Load;15 } 1617 publichildform(string text):this()18 { 19 URL = text;20 } 2122 private void childform _ Load(object sender,EventArgs e)23 { 24 web browser = new chromwebbrowser(null);25网页浏览器。Dock = DockStyle。填充;26号。控件。添加(网络浏览器);27网络浏览器。load(URL);28}29}30}

3.解决问题

1)添加AnyCPU支持(cefsharp。“通用”在“任何中央处理器”平台上都无法正常工作。您需要指定平台(x86/x64)。这个错误其实是cefsharp的一个缺陷。CefsharpPic的项目团队表示,将在未来修复这个bug。暂时解决这个问题吧。)

[1],你必须把

& lt?xml version="1.0 "编码="utf-8 "?>。& ltproject ToolsVersion = " 14.0 " DefaultTargets = " Build " xmlns = " http://schemas . Microsoft . com/developer/msbuild/2003 " >;& lt导入项目= "..packagesCefSharp。winforms . 69 . 0 . 0 buildcefsharp . winforms . props " Condition = " Exists('..packagesCefSharp。winforms . 69 . 0 . 0 buildcefsharp . winforms . props ')"/& gt;& lt导入项目= "..packagesCefSharp。common . 69 . 0 . 0 buildcefsharp . common . props " Condition = " Exists('..packagesCefSharp。common . 69 . 0 . 0 buildcefsharp . common . props ')"/& gt;& lt导入项目= "..package scef . redist . x86 . 3 . 3497 . 1841 build cef . redist . x86 . props " Condition = " Exists('..package scef . redist . x86 . 3 . 3497 . 1841 build cef . redist . x86 . props ')"/& gt;& lt导入项目= "..package scef . redist . x 64 . 3 . 3497 . 1841 build cef . redist . x 64 . props " Condition = " Exists('..package scef . redist . x 64 . 3 . 3497 . 1841 build cef . redist . x 64 . props ')"/>;& lt导入项目= $(MsBuildExtensiSpath)$(MsBuildToolsVersion)微软。common . props " Condition = " Exists($(MsBuildExtensispath)$(MsBuildToolsVersion)微软。common . props ')"/>;& ltPropertyGroup>。& ltCefSharpAnyCpuSupport & gttrue <。/CefSharpaniCPUsupPort >

[2],添加

& ltruntime>。& ltassembly BInding xmlns = " urn:schemas-Microsoft-com:ASM . v1 " >& lt探查privatePath="x86"/>& lt/assemblyBinding>。& lt/runtime>。

[3]修改应用程序根目录下的Program.cs文件。

1[statthread]2 publicstativoidmain()3 { 4 varsettings = new cef settings();5设置。BrowserSubprocessPath = @头孢夏普。browsersubprocess . exe ";67Cef。初始化(设置,performDependencyCheck: false,browserProcessHandler:null);89 varbrowser = NewbrowserForm();10应用。运行(浏览器);11}

2)程序启动时CefSharp未初始化,导致ChromiumWebBrowser控件灰色显示。

[1],初始化CefSharp对象,否则什么都没有。

1[statthread]2 publicstativoidmain()3 { 4 varsettings = new cef settings();5设置。BrowserSubprocessPath = @头孢夏普。browsersubprocess . exe ";67Cef。初始化(设置,performDependencyCheck: false,browserProcessHandler:null);89 varbrowser = NewbrowserForm();10应用。运行(浏览器);11}

3)CefSharp.BrowserSubprocess.Core.dll和CefSharp.BrowserSubprocess.exe不在bin目录中。至于这两个资源文件的功能,了解浏览器多进程架构机制的原理很有意思。打开ChromiumWebBrowser控件显示的多个页面,加载多个CefSharp.BrowserSubprocess.exe进程。

三.摘要

这是一个小进步。以前没遇到的,现在进步了。如有必要,了解更多信息。不要忘记你的首创精神,继续努力。

世界上所有的国家都可以一样;爵禄,可辞;白刃,亦可舞;中庸之道不可能

版权声明:本文收集自网友或由网友提供。如有侵权,请告知版主或留言,微信官方账号立即删除。

1.《cefsharp C#使用CefSharp开源库开发Chrome 浏览器》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《cefsharp C#使用CefSharp开源库开发Chrome 浏览器》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1269816.html

上一篇

加勒比海盗4美人鱼 《加勒比海盗4》二号美人鱼扮演者大揭密

下一篇

张哲瀚工作室老板是谁 张哲瀚现在一集片酬是多少钱

如此网 如此网红的亲子项目,天津欢乐谷为您安排上了!

  • 如此网 如此网红的亲子项目,天津欢乐谷为您安排上了!
  • 如此网 如此网红的亲子项目,天津欢乐谷为您安排上了!
  • 如此网 如此网红的亲子项目,天津欢乐谷为您安排上了!

石家庄嘉年华 石家庄亲子嘉年华来了!项目多,品质高,还免费!限量门票速速来领!

  • 石家庄嘉年华 石家庄亲子嘉年华来了!项目多,品质高,还免费!限量门票速速来领!
  • 石家庄嘉年华 石家庄亲子嘉年华来了!项目多,品质高,还免费!限量门票速速来领!
  • 石家庄嘉年华 石家庄亲子嘉年华来了!项目多,品质高,还免费!限量门票速速来领!
中国技术进出口集团有限公司所属南京技术进出口有限公司高级项目经理杨煦接受监察调查

中国技术进出口集团有限公司所属南京技术进出口有限公司高级项目经理杨煦接受监察调查

中国技术进出口集团有限公司所属南京技术进出口有限公司高级项目经理杨煦涉嫌职务违法犯罪,目前正接受中国通用技术集团纪检监察组和南京市鼓楼区监委监察调查。来源:纪检监察组...

恒大上海楼盘 恒大全国楼盘打75折?恒大上海及环沪项目的回应来了

恒大上海楼盘 恒大全国楼盘打75折?恒大上海及环沪项目的回应来了

2月16日晚,恒大集团发布全国所有楼盘特价通知。2020年2月18日至2月29日,恒大在中国销售的住宅(含公寓、写字楼)可享受七五折优惠。从3月1日到3月31日,您可以享受78%的折扣。单栋去污率在80% ~ 90%的,可以再享受97%的优惠;...

公共卫生服务项目 14项基本公卫服务项目详细介绍

公共卫生服务项目 14项基本公卫服务项目详细介绍

国家基本公共卫生服务是促进基本公共卫生服务均等化、增进人民健康、实现公共卫生公平的重要举措。基本公共卫生服务由各级政府共同出资,乡镇卫生院、村卫生室、城市社区卫生服务中心等基层医疗卫生机构免费为居民提供服务,是党和政府实行的惠民政策。 然而,仍...

环保行业项目 【今日最新】环保行业项目详情列举

环保行业项目 【今日最新】环保行业项目详情列举

今天,边肖列出了环保产业的最新项目细节。如果你对这个问题感兴趣或者想了解其他项目,可以在文末留言,中能竭诚为你服务~ 0 1 丹阳水务集团有限公司 丹阳市城市污水处理系统配套管网一期工程——丹北新大桥东环路污水管网工程(一标)      爱与激...

青海开展黄河流域生产建设项目水土保持专项整治

记者7日从青海省水利厅了解到,作为母亲河黄河发源地,该省加强黄河流域生产建设项目水土保持专项整治工作,清理排查核实项目1657项,以实际行动守护生态屏障,确保一江清水向东流。  2020年9月,青海省建立“省级牵头负责+技术团队支撑+地方现场取证查处”工作机制,强力推进黄河流域生产建设...

黄峥向浙大捐赠一亿美金 用于科学研究项目

今天,浙江大学教育基金会宣布联合繁星公益基金签署捐赠协议,设立“浙江大学上海高等研究院繁星科学基金”, 支持“计算+”创新实验室的建设,推动学校在计算与生物、医疗、农业、食品等交叉领域开展基础研究及前沿探索。 据了解,繁星公益基金由浙江大学校友黄峥和拼多多创始团队共同创立并捐赠。致力于在生...