首次接触CefSharp

article/2025/11/7 11:39:21

无疑是我最拿手的开发工作。可是作为一个想成为全能骑士的程序员,当然要能满足各种开发需求。 但是界面这种东西不让我用前端来做心里会很憋屈的。所以在各种需求面前我都会找是否能与HTML混合开发。

我使用过的混合开发平台

C# WebView

追溯到最早我的混合开发还是在C#中。使用的是WebView控件,在布局中加入一个WebView, 然后很方便的就可以和控制浏览器一样控制它。不过它有一个很大的问题,浏览器内核使用的是系统内核。使用IE问题并不大, 但是无法控制版本就会导致在不同系统中运行效果不同,如果做桌面应用还需要那么大费周章做兼容是很烦人的。 当然,优点也不是没有,控件这种形式很容易控制,很容易做多标签页这种东西,而且相互不干扰。

nw.js

接触到第二个这种开发模式的就是nw.js了,在我刚接触的时候它还叫node-webkit。这是一个让我豁然开朗的开发平台, 以Node.js为基础开发可视化桌面应用,整个程序就是以JS来控制。它是以Webkit作为核心运行的, 因为有着自己的核心所以在不同的环境下可以有着相同的效果。它可以轻易的使用node.js的功能和JS扩展, 不过C++扩展就搞得我有点懵逼了。自己编写C++扩展更是从来没成功过(不过我的C++b本来就不熟悉)。 两次自定义桌面都是使用nw.js来做,不过窗体句柄操作是写的外部程序通过nw.js调用而并非扩展。

Adobe AIR

Flash是一个我一直希望它能发展的东西。在很多游戏平台总是能看到很多国外大神们的优秀Flash游戏作品。 这也是让我体会到了开发工具不分好坏,只有是否合适之说。Adobe AIR是使用Flash AS3来开发桌面应用的工具, 它所给出的功能在我看来并不亚于node.js,并且Flash在流媒体上有着较大的优势。在Adobe AIR中有一个HTMLLoader控件。 就如同C#的Webview一样是一个控件,不过区别在于它使用的是自己独立的内核。虽然它说支持到HTML5但是实际上差距比较大, 对canvas和svg这样的html5核心标签并不支持,并且部分表单样式上差异较大。不过它可以跨平台,并且支持度还不错, 曾经用它开发过安卓通过wifi控制打印机的app。

PhoneGap

前面介绍的都是以桌面开发为主的混合开发平台,而PhoneGap则是主要开发移动端的混合开发平台。 因为没有IOS机,所以不清楚IOS方面的问题。在安卓端这边的话使用的是webkit内核,测试下应该是使用系统自带的内核, 在不同机型上会有不同的效果,且安卓4.3和安卓4.4差距天壤之别。不过可以使用crosswalk扩展来达到效果的统一和优化 (使用后效果将有很大差距),但是APP的容量一下子增加了18M左右。作为安卓混合开发的话就现在的使用体验我觉得该框架算是最佳选择。

CefSharp

CefSharp是我最近接触到的一个C#的HTML混合开发扩展,至于为什么接触了那么多桌面混合开发平台还会学这个扩展, 最主要还是因为各有所长吧。在大部分的需求中开发桌面应用我应该都是首选nw.js的,但是CefSharp却可以弥补nw.js对于我而言的短处。 我并不会很好的开发nw.js的C++扩展,但是很多时候我开发桌面应用都离不开windows API。比如句柄和内存操作(做外挂) 、比如串口通讯(物联网)这些方面,我更愿意直接使用C#来编写。

尝试配置CefSharp

跟着网上的教程,我试着配置了一下CefSharp

1.首先我将我还在用的vs2012更新到了2013(貌似最新版需要)

2.创建一个WindowsForms项目

3.右键进入NuGet管理器,安装CefSharp扩展

4.这里遇到了和网上不一样的问题,我现在实际上并没有引入到CefSharp扩展,但是项目下面出现了packages文件夹。 在VS中手动引入CefSharp.Common和CefSharp.WinForms文件夹下相应系统的dll文件,这样就成功引入内容了。

5.在Forms初始化内容中写入如下代码

CefSharp.Cef.Initialize();
ChromiumWebBrowser wb = new ChromiumWebBrowser("http://www.360.com/");
wb.Dock = DockStyle.Fill;
this.panle.Controls.Add(wb);

6.此时的我还是无法运行,在经过一番查找之后发现还需要其他内容的支持,我将packages文件夹下另外两个文件夹中x64系统的CEF文件打开。 将内容复制到Debug文件夹下,并把x64文件夹里的dll剪切到Debug根目录。倒腾了好一会总算是成功运行。

一些需要注意的东西

成功之后尝试着做了一些开发,发现了一些问题

1.实际使用时API和网上的一些教程不太一样,应该是新版本的原因。

2.推荐在切换地址时进行URLencode,我的本地路径中有特殊符号#导致页面打不开,调试了一下才发现是这个问题。

3.载入本地HTML貌似不能使用相对路径

文章为原创内容并且是个人观点和见解,如有错误或问题欢迎指出
本文的地址为 :  http://evillcg.com/blog/item/1463048277/

http://chatgpt.dhexx.cn/article/pPImJrxN.shtml

相关文章

BUUCTF Misc 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧

目录 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧 穿越时空的思念 下载文件 使用Audacity打开 点击图示位置,选择分离立体声到单声道,得到一串摩斯(右声道),记录下来复…

【buuctf】cscctf_2019_qual_babyheap

buuctf【cscctf_2019_qual_babyheap】 今天找了一道100分题目,题目本身并没有那么难 例行检查 64位的程序,保护机制全开,放到IDA中分析 漏洞分析 函数功能很简单,功能基本齐全,漏洞点在creat()中, 当我…

CE-FPN: Enhancing Channel Information for Object Detection

论文链接: https://arxiv.org/pdf/2103.10643v1.pdf 本文提出了一种新的通道增强特征金字塔网络(CE-FPN),具体地说,受亚像素卷积的启发,提出了一种亚像素跳跃融合方法来执行通道增强和上采样。它代替了原来的11卷积和…

CEF一些基本知识

一.CEF简介 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。 简单说就是Chrome的开源版,目前很多所谓的双核浏览器,实质就是chromeIE的双核。基于HTML5的支持&#xff0c…

CEF环境编译

文章目录 前言龙芯-CEF用户使用手册Tutorial源码入口函数编译步骤最后 前言 Chromium Embedded Framework (CEF) 官方镜像。 一个简单的框架,用于将基于 Chromium 的浏览器嵌入到其他应用程序中。 CEF仓库:chromiumembedded/cef 二进制CEF: CEF Autom…

CEM和BBHE

逆光图像处理 CEMBBHE代码CEMBBHE 今天又了解到了两种对亮度处理的方法。分别是CEM和BBHE。 参考: CEM_matlab. BBHE_matlab. BBHE_C. CEM 单纯的CEM公式比较简单,原理和公式如下 根据网上一个matlab程序复写了一遍python的,灰度图是有效果的。彩色…

模拟生成高斯噪声

之前有做过在图像上加高斯噪声的实验,在模拟生成随机数,以及产生高斯分布噪声时,受到了一些干扰。尤其是和高斯模糊相混淆。对于初学者来说,这些虽然是一些基本的图像处理知识,但是,眼高手低是很要不得的。…

CSS实现高斯模糊效果

用CSS实现高斯模糊效果:filter、backdrop-filter 高斯模糊是一种常见的效果(俗称毛玻璃效果),在CSS中使用filter、backdrop-filter属性均可实现 一、filter 这其实是一种“假”模糊,需要一层做背景并使用filter属性达到…

(三)对图像进行Gauss高斯平滑处理

对图像进行Gauss高斯平滑处理 平滑滤波 图像在采集、传输和转换过程中都容易受环境的影响,这在图像中就表现为噪声,这些噪声会致使图像质量降低或者干扰我们提取原本想要的图像信息,所以需要通过滤波技术来去除这些图像中的噪声干扰。 常见…

高斯白噪声(white Gaussian noise,WGN)及matlab演示

原文链接:http://wenku.baidu.com/link?urlmj_wz_9l7PAlURQYi1iOnTnweMxyPvoTWGgoIQdCh2v0Yugt7v_G9QsUkS6Ww-ro2VhJ3L9rsE9kqhqX1V-3TlLNeZdcx_zrLlzZBBIhgqK 文库上看到的一片文章,讲的非常清晰明了,我等渣渣不得不转啊。 本文科普一下高斯…

高斯平滑 高斯模糊 高斯濾波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 實現

http://blog.csdn.net/cay22/article/details/5546636 高斯平滑 高斯模糊 高斯濾波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C 實現 在之前提到過了均值濾波器, 就是說某像素的顏色, 由以其為中心的九宮格的像素平均值來決定. 在這個基礎上又發展成了帶權的…

高斯玻色采样enhance量子近似优化算法

上篇博文,我们已经接触了QAOA量子近似优化算法,我们已经知道近似优化算法一般用于求解组合优化问题。这里我们再说明一下什么是组合优化问题: 给定一个数据集 X { x 1 , x 2 , . . . x N } X{{x_{1},x_{2…

matlab 绘制高斯(Gaussan)函数图像

高斯函数如下: G a u s s a n 1 2 π σ e − ( x − μ ) 2 2 σ 2 Gaussan \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} Gaussan2π ​σ1​e−2σ2(x−μ)2​ 使用 MATLAB 编写高斯函数,需传入 x , μ , σ x,\mu,\sigma x,μ,…

高斯平滑滤波器(Gaussian Smoothing Filter)

一、图像滤波的基本概念 图像常常被强度随机信号(也称为噪声)所污染。一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等。椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值&am…

高斯滤波(Gauss filtering)

1.概念介绍 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。  通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后…

Matlab_用高斯赛德尔(Gaoss-Seidel)迭代法解线性方程组

1.程序代码 function xGauss(A,b,x0,ep,N) %用途:用高斯迭代法解线性方程组Axb %A为系数矩阵,b为右端向量,x0为初始向量(默认零向量) %ep为精度(1e-6),N为最大迭代次数&#xff…

gaussian_filter( )函数(高斯滤波)

对一个数进行高斯滤波(模糊)可以理解成将该数取附近矩形窗口所有值的加权平均值,距离处理数越近的点权重越大,距离处理点越远的点权重越小。因此如果取的矩形窗口越大,那么对处理点的模糊效果越强烈。 上图&#xff0c…

Gauss-Seidel迭代法的C++实现

高斯赛德尔迭代法大家可以从网站上找到相关的公式推导&#xff0c;这里给出它的C算法实现和运行的结果。 #include<iostream> #include<math.h> using namespace std;int n; //定义全局变量 double a[100…

高斯平滑

&#xfeff;&#xfeff; 高斯平滑 Common Names: Gaussian smoothing 简述&#xff1a; 高斯平滑操作是一种2-D的卷积操作&#xff0c;应用于模糊图像中&#xff0c;去除细节和噪声。从这个意思上说&#xff0c;它类似于均值滤波器&#xff0c;但是使用的是不同的内核&#…

高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现

发展到现在这个平滑算法的时候, 我已经完全不知道如何去命名这篇文章了, 只好罗列出一些关键字来方便搜索了. 在之前我们提到过了均值滤波器, 就是说某像素的颜色, 由以其为中心的九宫格的像素平均值来决定. 在这个基础上又发展成了带权的平均滤波器, 这里的高斯平滑或者说滤波…