我正在开发一个使用.Net的Webbrowser控件的自定义浏览器解决方案。要禁用IE兼容视图,我设置了注册表项Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION:
Sreenshot regedit“截图”
我尝试使用值: dword=8000、dword=8888、dword=9000,但webbrowser控件似乎忽略了这些reg条目。
也许有人也有这个问题,可能会对我有所帮助。
发布于 2012-03-28 04:31:14
WebBrowser控件确实尊重这些键。
请记住,尽管taskman可能会在名称列中显示application.exe,但如果您正在调试,则可执行文件的名称为application.vshost.exe
因此,在我的应用程序中,sI只是在应用程序每次运行时尝试创建密钥。如果它无法创建它(因为它已经存在),那么我将继续运行,如果它创建了密钥,那么我将通知用户他们需要重新启动应用程序。
发布于 2012-10-27 14:16:02
确保您未在vshost内运行
应用程序名称会有所不同,例如appname.vshost.exe
发布于 2012-03-28 09:49:32
谢谢你的回复,现在它起作用了。
她是我工作中的安宁代码:
public void setIEcomp()
{
String appname = Process.GetCurrentProcess().ProcessName+".exe";
RegistryKey RK8 = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION",RegistryKeyPermissionCheck.ReadWriteSubTree);
int value9 = 9999;
int value8 = 8888;
Version ver = webBrowser1.Version;
int value = value9;
try
{
string[] parts = ver.ToString().Split('.');
int vn = 0;
int.TryParse(parts[0], out vn);
if (vn != 0)
{
if (vn == 9)
value = value9;
else
value = value8;
}
}
catch
{
value = value9;
}
//Setting the key in LocalMachine
if (RK8 != null)
{
try
{
RK8.SetValue(appname, value, RegistryValueKind.DWord);
RK8.Close();
}
catch(Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
}https://stackoverflow.com/questions/9890108
复制相似问题