关于在VB.Net桌面应用程序中包含web浏览器控件的建议

关于在VB.Net桌面应用程序中包含web浏览器控件的建议,vb.net,internet-explorer,browser,Vb.net,Internet Explorer,Browser,我正在用VB.Net编写一个桌面应用程序,我想包括一个web浏览器控件,用于自动执行用户可能必须在浏览器中执行的某些功能。我必须呈现页面,所以我不想使用webrequest进行直接调用。当我发布应用程序时,我是否需要关心用户机器上安装了哪个版本的Internet Explorer?他们的任何第三方、免费、稳定的web浏览器控件是否可用于人们正在使用的VB.Net?Visual Studio的多个版本支持web浏览器控件。下面是一篇关于如何实现一个的文章 web浏览器控件将与不同版本的Inter

我正在用VB.Net编写一个桌面应用程序,我想包括一个web浏览器控件,用于自动执行用户可能必须在浏览器中执行的某些功能。我必须呈现页面,所以我不想使用webrequest进行直接调用。当我发布应用程序时,我是否需要关心用户机器上安装了哪个版本的Internet Explorer?他们的任何第三方、免费、稳定的web浏览器控件是否可用于人们正在使用的VB.Net?

Visual Studio的多个版本支持web浏览器控件。下面是一篇关于如何实现一个的文章

web浏览器控件将与不同版本的Internet Explorer一起使用,但仅限于该版本的Internet Explorer支持的功能


这篇文章基于VisualStudio2008,但在文章的右角有关于如何使用web浏览器控件的链接,指向早期版本的VisualStudio

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

壁虎

“一个用于 将Mozilla Gecko(Firefox)嵌入到 .NET应用程序。”


如果在应用程序中嵌入Webbrowser控件,那么真正要做的就是嵌入COM对象。在运行时,您的应用程序将协同创建Webbrowser控件的实例(),该控件将从当前计算机上的SHDOCVW.DLL或IEFRAME.DLL版本中加载它。因此,简单地说,您将获得IE6、IE7或IE8 Webbrowser控件,具体取决于机器上安装的内容

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

当我在IE团队应用程序兼容性wrt上工作时,Webbrowser控件是一件大事;该团队非常努力地工作,以确保行为不会在这种情况下倒退,即托管WebOC的自定义企业VB应用程序


不过,如果您决定使用开源解决方案与您的应用程序一起分发,我可以建议您吗?它的布局引擎非常好,源代码维护良好,易于阅读,不过您必须编写自己的托管托管层。Gecko代码更难阅读和调试。

谢谢链接。我最担心的是将这个应用程序发布给500个用户,却无法控制他们的IE版本。看起来不错。有人知道VB.Net项目使用geckofx吗?但它的.Net-没关系(好吧,几乎总是!)Reflector是你的朋友……这难道不意味着你现在要负责向用户发布Mozilla引擎的补丁吗?安全修补程序等?我想我可以这样做,因为我将100%控制他们访问的网站,只要程序在升级firefox时不会爆炸,它应该是好的。我真的在VB.Net中在3分钟内就可以完成这项工作。看起来有点像IE webbrowser控件。谢谢保罗!!!