在C#中使用Chrome浏览器?

有没有办法在C#应用程序中使用Google Chrome(或Safari或Firefox)作为浏览器? C#现在使用Internet Explorer,他们想在这个程序中使用的网站不支持它。

你可以使用WebKit.NET 。 这是一个WebKit的C#包装器,它是Chrome使用的渲染引擎。

您可以使用GeckoFXembeddedFirefox

我不知道任何完整的 Chrome组件,但可以使用WebKit,它是Chrome使用的渲染引擎。 单声道项目使WebKit夏普 ,这可能会为你工作。

我使用Awesomium,我认为它比GeckoFX / WebKit http://awesomium.com更好;

OpenWebKitSharp让您完全控制WebKit Nightly,它在性能和兼容性方面非常接近Webkit。 Chrome使用WebKit Chromium引擎,而WebKit.NET每晚使用Cairo和OpenWebKitSharp。 Chromium应该是这些版本中最好的,而第二名应该是Nightly,这就是为什么我build议OpenWebKitSharp。

http://gt-web-software.webs.com/libraries.htm在OpenWebKitSharp部分;

我能用CefSharp做到这一点。

这里有几个post显示了这一点:

  • 在O2中运行Chrome
  • video:安装和运行CefSharp(带WPF浏览器的C#Chrome)
  • video:在O2和VisualStudio中自然运行Chrome

2017年3月 – > 2017年1月3日

您好,今天,我发现这篇文章来实现这一点,这篇文章被称为“创build一个桌面.NET应用程序的HTML用户界面”,旨在将一个基于铬的控件embedded到WPF应用程序。 这一天救了我。

https://www.infoq.com/articles/html-desktop-net

我希望它能帮助别人。

注意:它基于DotNetBrowser,请参阅许可协议在这里: https ://www.teamdev.com/dotnetbrowser-licence-agreement

试试这个: http : //code.google.com/p/geckofx/

2014年更新:

我使用geckofx ,这是一个健康的开源项目,(截至撰写本文)与最新的Firefox版本保持一致。

要embeddedChrome,您可以考虑另一个健康的开源项目Xilium.cefGlue ,它基于Chromium Embedded Framework(CEF) 。

这两个都支持WPF和Winforms,并且这两个项目都支持.net和mono。

2016年更新:

不幸的是,大多数上述解决scheme已经过时,不再维护。

还有3个额外的选项,我可以build议,仍然积极开发:

1. BrowseEmAll.Cef

.Net组件,可用于将Chrome引擎集成到.Net应用程序中。 基于CefGlue,但更新到最新的Chrome版本有点快。 此外,还有一个商业支持选项,可能会派上用场。 当然,这个组件本身就是开源的

2. BrowseEmAll.Gecko

另一个可用于将Firefox引擎集成到.Net应用程序中的.Net组件。 这是基于Geckofx,但不同于当前版本的Geckofx,这将与Firefox的正常版本构build一起工作。 要使用Geckofx,您需要自己构buildFirefox。 再次商业支持是可用的,但组件本身是完全开源的

3.浏览完整的核心API

需要.Net应用程序中的所有不同的浏览器? BrowseEllll Core API可以将Chrome,Firefox,Webkit和Internet Explorer集成到您的应用程序中。 尽pipe如此,但这是一个商业产品

(充分披露:我为这家公司工作,所以我把一切所说的一切)

看看DotNetBrowser库。 它提供了基于Chromium的WPF和WinForms浏览器控件,这些控件很容易embedded到.NET应用程序中。 它支持所有的现代Web标准,包括HTML5,CSS3和JavaScript。 呈现的页面在Google Chrome浏览器中看起来完全一样。

该库inheritance了Chromium的多进程架构 – 每个网页都在一个单独的Chromium进程中呈现,即使在插件崩溃或网页出现任何其他意外错误之后,该应用程序仍将继续工作。

以下是DotNetBrowser提供的其他一些有用的function:可以监听加载事件,处理networking活动,configuration代理,模拟用户操作,使用cookie,访问和修改DOM,监听DOM事件,从.NET调用JavaScript。反之亦然,在网页上使用networking摄像头和麦克风,build立基于WebRTC的通信, 等等 。

查看API参考了解更多详情。

下面的代码片段演示了如何创build一个BrowserView,将其embedded到Form中,并加载一个URL:

using System.Windows.Forms; using DotNetBrowser; using DotNetBrowser.WinForms; namespace WinForms.DotNetBrowser { public partial class Form1 : Form { public Form1() { InitializeComponent(); BrowserView browserView = new WinFormsBrowserView(); Controls.Add((Control) browserView); browserView.Browser.LoadURL("http://www.youtube.com"); } } } 

一旦你运行上面的例子,你会得到以下输出:

在这里输入图像说明

这个图书馆是商业的,但是它可以在开放源代码和学术项目中免费使用。 商业许可包括不同团队规模的支持包。 也可以购买图书馆的源代码。

除了自己的页面之外,组件还可以作为NuGet包和Visual Studio Marketplace中的VSIX包提供。