如何将WebBrowser从IE更改为Firefox

11

我正在处理使用System.Windows.Forms.WebBrowser的C# .NET应用程序。

由于IE无法正常响应,所以我想转换为Mozilla Firefox。

我该怎么做?

7个回答

6
你不能这样做。 WebBrowser控件是IE ActiveX控件的包装器,不容易被Mozilla替换。
但是,你可以研究Mozilla ActiveX控件

2
使用ActiveX控件将是一个痛苦的过程。已经有人创建了托管包装器:http://code.google.com/p/geckofx/ - jasonh

4

4

我刚刚看了一下GeckoFXWebKit.NET,它们可能会对你有兴趣。如果你想更改默认的WebBrowser控件,我不认为这是可能的。


2

System.Windows.Forms.WebBrowser是SHDocVw.WebBrowser的托管封装,但这个封装存在一些漏洞,可能无法提供所需的可扩展性。如果您有一个可行的解决方案,我不建议将其改为使用System.Windows.Forms.WebBrowser

IE不基于.Net,因此您无法使用System.Windows.Forms.WebBrowser控制IE中的任何内容。事实上,我甚至不建议在.Net中连接BHO,因为只能在IE进程中运行一个CLR版本,而您的BHO可能会在意外的CLR版本上运行。


1

不确定是否可能或容易,但是Mono使用Gecko#来实现其版本的System.Windows.Forms.WebBrowser。也许您可以重用那个或从那段代码中提取一些可用部分?


0

0

更新2016:

我可以建议三个仍在积极开发中的其他选项:

1. BrowseEmAll.Cef

这是一个 .Net 组件,可用于将Chrome引擎集成到您的 .Net 应用程序中。基于CefGlue,但更新到最新的Chrome版本速度更快。此外,还提供了商业支持选项,对某些人可能会有所帮助。当然,组件本身是开源的。

2. BrowseEmAll.Gecko

另一个 .Net 组件,可用于将 Firefox 引擎 集成到您的 .Net 应用程序中。这是基于 Geckofx,但与 Geckofx 的当前版本不同,它可以与 Firefox 的正常发布版本一起使用。要使用 Geckofx,您需要自己构建 Firefox。同样,提供了商业支持,但组件本身完全是开源的。

3. BrowseEmAll Core API

需要在您的 .Net 应用程序中使用所有不同的浏览器吗?使用 BrowseEmAll Core API,您可以将Chrome、Firefox、Webkit 和 Internet Explorer集成到您的应用程序中。不过这是一个商业产品,所以请注意。

(完全透明:我为这家公司工作,所以请对我说的一切持保留态度)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接