我想强制 webbrowser 在我的 c# winform 应用程序中使用 IE10。我知道还有其他类似的问题,但我已经阅读了很多,但我不知道我错在哪里。
这是我的代码:
RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);
registrybrowser.SetValue("myAppName", 0x02710, RegistryValueKind.DWord); //Even with QWord
我尝试了不同的方法来设置值,例如:
registrybrowser.SetValue("myAppName", 1000, RegistryValueKind.DWord); //Even with QWord and String
registrybrowser.SetValue("myAppName", 1000); //even with 0x02710
我在 InitializeComponent() 之前将它写在我的主项目的构造函数中。我在 .manifest 文件中设置了管理员权限
感谢所有人, BlackShawarna
编辑:我发现 RegistryKey.SetValue(...); 在另一个路径中创建了一个键:
(@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION")
即使我的指示说:Registry.LocalMachine.OpenSubKey
(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);
我认为这是因为 IE10 在 32 位模式下工作。但是,即使我指定了另一个路径,我也不明白为什么它会写入该路径,最重要的是,为什么即使我打开 Registry.LocalMachine.OpenSubKey(@"Software\Wow6432Node...." );
如果我只在 x64 模式下运行我的程序,转到 properties/build/x64,它不会在我的原始路径中写入密钥。