我们知道 Internet Explorer 将在 Windows 10 中停产,取而代之的是新的 Microsoft Edge(以前代号为“Project Spartan”)。
有数百万个应用程序使用 TWebbrowser,这是一个使用 Internet Explorer API 的组件。
有人知道这些应用程序将如何在未来版本的 Windows 中工作吗?我们如何准备好让我们的应用程序在未来的 Windows 版本中正常工作?
我们知道 Internet Explorer 将在 Windows 10 中停产,取而代之的是新的 Microsoft Edge(以前代号为“Project Spartan”)。
有数百万个应用程序使用 TWebbrowser,这是一个使用 Internet Explorer API 的组件。
有人知道这些应用程序将如何在未来版本的 Windows 中工作吗?我们如何准备好让我们的应用程序在未来的 Windows 版本中正常工作?
根据IE 博客
Internet Explorer 11 将与 Windows 8.1 基本保持不变,继续专门托管旧版引擎。
因此 IE(和 mshtml.dll)不会消失,它将存在于 Windows 10 中以实现向后兼容性,因此 TWebbrowser 应该仍然可以在下一版本的 Windows 中工作。
(编辑问题已修复,最终解决)
我有使用 WebBrowser OCX 的 Delphi 2006(32 位)应用程序。我写 FEATURE_BROWSER_EMULATION/myapp.exe = 0 注册表值来获得最高的 IE 渲染模式。通过 WinXP-Win7-Win8-Win10(在最新补丁之前)运行良好。最新的补丁在某处进行了更改,现在 webbrowser 画布是空白的,但任何地方都没有错误。
它仍在调用 http 请求,所以并没有完全破坏,只是没有在屏幕上呈现任何内容。Myapp 请求使用的是 Spartan useragent(Edge/12),这在我请求最高功能仿真时是有道理的。
这是 Win10 补丁 10074->10131 之前/之后来自独立浏览器和 myapp 的用户代理列表。
IE Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) 像 Gecko
Spartan Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600
myapp.exe (patch 10074) Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0
myapp.exe(patch 10131) Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9200
Win10_patch_10074 环境运行良好,但 patch_10131 呈现空白但调用初始 http 请求。它不会调用响应 html 页面中的任何链接。我的应用程序没有被修改。
如果有帮助,我需要测试降低注册表值,但不幸的是,将 IE 仿真级别限制为低于可用级别。
ps:我的Delphi2006确实老了,但我不会再升级了,它会创建32位的应用程序。遗留问题,但那是软件现实。
这个博客有更多关于 feature_browser_emulation
编辑我从这个微软提供的表格中获得了最高的 IE11 值,现在一切正常。我设置了 11001(0x2AF9) 注册表值。
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
myapp.exe = 11001(0x2AF9)
myapp(patch 10131, 11001 registry): Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) 像 Gecko