(编辑问题已解决,最终解决)
我有使用 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 边缘/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 边缘/12.9200
Win10_patch_10074 环境运行良好,但 patch_10131 呈现空白但调用初始 http 请求。它不会调用响应 html 页面中的任何链接。我的应用程序没有被修改。
如果有帮助,我需要测试降低注册表值,但不幸的是,将 IE 仿真级别限制为低于可用级别。
ps:我的Delphi2006确实老了,但我不会再升级它了,它会创建32位应用程序。遗留问题,但这是软件现实。
This blog has more about feature_browser_emulation
edit 我从this Microsoft provided table 获得了最高的 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) like Gecko