网页浏览器使用ie10 c# winform
本文关键字:ie10 winform 网页浏览 浏览器 网页 | 更新日期: 2023-09-27 18:07:50
我想在我的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文件
中设置了Admin权限感谢所有人,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,它不会在我的原始路径中写入密钥。
我有同样的问题,我的应用程序将值写为"HKEY_LOCAL_MACHINE'SOFTWARE'Wow6432Node'Microsoft'Internet Explorer'MAIN'FeatureControl'FEATURE_BROWSER_EMULATION"。
我将LocalMachine更改为CurrentUser,现在它工作了。
string executablePath = Environment.GetCommandLineArgs()[0];
string executableName = System.IO.Path.GetFileName(executablePath);
RegistryKey registrybrowser = Registry.CurrentUser.OpenSubKey
(@"SOFTWARE'Microsoft'Internet Explorer'Main'FeatureControl'FEATURE_BROWSER_EMULATION", true);
if (registrybrowser == null)
{
RegistryKey registryFolder = Registry.CurrentUser.OpenSubKey
(@"SOFTWARE'Microsoft'Internet Explorer'Main'FeatureControl", true);
registrybrowser = registryFolder.CreateSubKey("FEATURE_BROWSER_EMULATION");
}
registrybrowser.SetValue(executableName, 0x02710, RegistryValueKind.DWord);
registrybrowser.Close();
可执行文件名类似于"myAppName.exe"
注意:如果WebBrowser控件在DLL内,你需要指定托管EXE的名称,无论它可能是什么,例如System.AppDomain.CurrentDomain.FriendlyName
FEATURE_BROWSER_EMULATION
"myAppName.exe"=10000
(或0x02710)而非1000.
In HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Internet Explorer'MAIN'FeatureControl'FEATURE_BROWSER_EMULATION
和HKEY_LOCAL_MACHINE'SOFTWARE'Wow6432Node'Microsoft'Internet Explorer'MAIN'FeatureControl'FEATURE_BROWSER_EMULATION
必须输入" myAppName。exe "而不是" myAppName "
如果您可以控制正在呈现的页面(例如内部网页面)以及使用WebBrowser控件呈现页面的应用程序,则可以在页面
中指定元标记。<meta http-equiv="X-UA-Compatible" content="IE=10" />
并根据需要使用WebBrowser控件。你的机器上必须安装IE 10。
如果你想模仿其他版本的IE,你可以简单地用"IE=EmulateIE9"
, "IE=EmulateIE8"
等代替"IE=10"