问题描述
Microsoft recently announced 表示 Internet Explorer(产品)将不再随 Windows 提供,但 Internet Explorer(编程 API)将继续工作:
正如今天宣布的那样,具有 IE 模式的 Microsoft Edge 将正式取代 Windows 10 上的 Internet Explorer 11 桌面应用程序。因此,Internet Explorer 11 桌面应用程序将停止支持并于 2022 年 6 月 15 日停用Windows 10 版本。
在本公告发布时超出范围(不受影响):
- Microsoft Edge 中的 Internet Explorer 模式
- Internet Explorer 平台(MSHTML/Trident),包括 WebOC
- Internet Explorer 11 桌面应用程序:
- Windows 8.1
- Windows 7 扩展安全更新 (ESU)
- Windows 10 Server SAC(所有版本)
- Windows 10 IoT 长期服务频道 (LTSC)(所有版本)
- Windows 10 Server LTSC(所有版本)
- Windows 10 客户端 LTSC(所有版本)
什么是 MSHTML (Trident) 引擎?这与 IE 模式有什么关系?
MSHTML (Trident) 引擎是 Internet Explorer 11 的底层平台。这与 IE 模式使用的引擎相同,它将继续得到支持(换句话说,不受本公告的影响)。 WebOC 也将继续得到支持。 如果您有一个依赖于 MSHTML 平台的自定义或第三方应用,您可以期待它继续工作。
(强调我的)
使用代码的开发人员
我们有可以追溯到几十年前的代码:
- 在内存中给出一些 HTML
string
- 将该文档交给 Internet Explorer 对象
- 并使 Internet Explorer(单独的进程)可见
换句话说:
void SpawnIEWithSource(string szSourceHTML)
{
IWebbrowser ie = (IWebbrowser)CreateComObject(CLASS_InternetExplorer);
ie.Navigate2("about:blank");
ie.Document.Write(szSourceHtml);
ie.Document.Close;
ie.Visible = True;
}
IUnkNown CreateComObject(Guid clsid)
{
IUnkNown result;
CoCreateInstance(clsid,null,CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,UuidOf(IUnkNown),ref result);
return result;
}
- 优点:
-
缺点:
- 硬编码 Internet Explorer 的使用,而不是用户的首选浏览器
那么这会继续有效吗?还是此更新会破坏应用程序?
奖励问题
当然,最好使用用户的首选浏览器。不幸的是,这是不可能的。但为了以防万一,我们可以问:
奖励阅读
- .NET: How to make WebBrowser control launch in IE,display HTML,out of process?
- How to put the WebBrowser control into IE9 into standards?
- How to start browser with html string with lua
- Creating an IWebBrowser2 control
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)