2010-03-10 44 views
3

我正在VB.Net中编写桌面应用程序,并且我想包含一个Web浏览器控件以自动执行用户可能必须在浏览器。我必须呈现网页,因此我不想使用网络请求直接拨打电话。当我发布应用程序时,我是否必须关心用户在其计算机上安装哪个版本的Internet Explorer?他们的任何第三方,免费提供,稳定的网页浏览器控件可用于VB.Net,人们正在使用?在VB.Net桌面应用程序中包含Web浏览器控件的建议

回答

5

你总是可以忽略整个IE问题,使用嵌入在您的应用程序Mozilla的引擎:

geckofx

“为 嵌入Mozilla的Gecko的(火狐)的一个开放源代码组件 .NET应用程序。“

http://code.google.com/p/geckofx/

+0

看起来不错。任何人都知道使用geckofx的VB.Net项目? – ajl

+0

但它的.net - 没关系(好吧,几乎总是!)反射器是你的朋友... –

+0

这不是说您现在负责为用户推出针对Mozilla引擎的修补程序吗?安全修补程序等? – MarkJ

1

几个版本的Visual Studio支持Web浏览器控件。这里是一篇关于如何实现其中的文章。

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx

Web浏览器控件将与不同版本的Internet Explorer的工作,但将仅限于由该版本的Internet Explorer支持的功能。

本文基于Visual Studio 2008,但在文章的右上角有关于如何使用Web浏览器控件的链接,以及早期版本的Visual Studio。

+0

感谢您的链接。我最担心的是将这个应用发布到500个用户,并且无法控制他们拥有哪个版本的IE。 – ajl

1

如果嵌入在应用程序中WebBrowser控件,你真正做的是嵌入的COM对象。在运行时,您的应用程序将CoCreateInstance()Webbrowser控件,它将从当前在机器上的SHDOCVW.DLL或IEFRAME.DLL版本加载它。因此,用简单的英语,您将获得IE6,IE7或IE8 Webbrowser控件,具体取决于机器上安装的内容。

然而,实际的差异很小,因为接口很久以前就已经发布了,并且没有改变这些版本。无论如何,某些接口(如IOleCommandTarget)支持的不同命令的差异被管理层抽象掉了,因此您不必担心这一点。最大的区别是呈现差异,因为IE6和IE8之间的CSS一致性存在巨大的差异。您将不得不使用Microsoft's app compat VHDs来测试各种版本。

当我参与IE团队应用程序兼容性时,Webbrowser控件是一笔巨大的交易;该团队非常努力地确保这种行为不会因为这种情况而退化,即定制的企业VB应用程序托管WebOC。

虽然如果您决定使用开源解决方案与您的应用程序一起发布,我可以建议WebKit吗?它的布局引擎非常好,源代码维护得很好并且易于阅读,但是您必须编写自己的托管托管层。 Gecko代码很难读取和调试。

相关问题