如何让.NET Webbrowser控件始终遵守FEATURE_BROWSER_EMULATION注册表项?

时间:2013-12-06 14:55:50

标签: .net webbrowser-control

我们在Windows 7中有一个VB.Net CLR 4.0应用程序,当您单击按钮时,会弹出一个webbrowser控件并显示一个网页。浏览器控件默认为IE7模式,我们至少需要IE8才能正确显示页面(这是一个我们无法控制的外部网站)。

我们所有的用户都在Windows 7 x86计算机上,通过AppSense安装了以下注册表项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"AppName.exe"=dword:00001f40

这适用于大多数用户,但是大约10%,由于某些原因,密钥才被完全忽略,并且控件中使用了IE7模式。我已经验证了密钥在他们的机器上已经存在,并且该名称与任务管理器中的可执行文件名称相匹配,并且我已经检查了他们的IE9浏览器以查找可能已经在其中设置的任何特殊兼容性设置我的钥匙,但我找不到任何与众不同的东西。

是否有任何合理的情况会导致webbrowser控件完全忽略注册表中的此键?

1 个答案:

答案 0 :(得分:1)

使用HKEY_CURRENT_USER代替HKEY_LOCAL_MACHINE(即 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION)。这不需要管理员权限,您应该在运行时从应用程序本身设置此密钥。 More info,包括示例代码。