.NET Web浏览器对象和系统中的Internet Explorer之间有什么关系?

3
我正在开发一个针对Windows 7的C#应用程序,其中我想在表单内的Web浏览器对象中从URL加载一些Flash内容。我认为,.Net Web浏览器对象使用安装在系统中的Internet Explorer。因此,如果我从系统中删除IE,则在实例化Web浏览器对象时应该会抛出异常。
但是我观察到,即使我从系统中删除了IE,我的应用程序仍然可以在表单中呈现内容。但是,如果我点击内容中的任何链接,它都不会打开任何弹出式IE窗口以显示该内容。
您能否阐明.Net中默认Web浏览器对象与系统中的IE之间的关系?
是否有任何指针或链接可以探索此行为?

我相信Windows的“N”版本不包括IE,这可能会影响到这个问题的答案。该版本在韩国和英国的某些地区分发。例如:Windows 7 N - makerofthings7
你可以调查挂钩链接点击事件,然后自己打开浏览器控件的新实例。 - Tim Lloyd
即使在未安装Internet Explorer的Windows版本中,仍具有Web浏览器控件的所有基本组件(例如MSHTML、URLMon、WinINET等)。如果您删除这些组件,则Windows无法启动。 - EricLaw
2个回答

3

Trident(也称为MSHTML)是Microsoft Windows版本Internet Explorer的布局引擎的名称。

Trident被设计为一种软件组件,以便软件开发人员可以轻松地将Web浏览功能添加到自己的应用程序中。它提供了一个COM接口,用于在任何支持COM的环境中访问和编辑Web页面,如C ++和.NET。... 通过将文件mshtml.dll链接到软件项目,可使用Trident功能。

从维基百科复制而来。 链接在此处

我系统上mshtml.dll文件的位置:

  • C:\Windows\winsxs\x86_microsoft-windows-ie-htmlrendering_31bf3856ad364e35_8.0.7600.16385_none_2dd3aff6fa7f090a
  • C:\Windows\System32

因此,即使您从系统中删除IE,mshtml.dll仍将保持不变。


这是正确的。你不能从系统中删除MSHTML而不炸掉Windows。 - EricLaw

2
大多数卸载Internet Explorer的方法会删除IE可执行文件,但会保留渲染库,这些库被Windows中许多其他工具使用。这可能是为什么它对你有效,但无法弹出独立的IE窗口。
不幸的是,我找不到任何正式参考资料,除了非正式的论坛讨论,而且没有一个讨论比我更深入,所以我无法提供任何有用的链接获取更多信息。

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