首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ie10 c# winform的ie10浏览器

使用ie10 c# winform的ie10浏览器
EN

Stack Overflow用户
提问于 2013-04-05 16:38:19
回答 4查看 9K关注 0票数 5

我想强制the浏览器在我的c# winform应用程序中使用IE10。我知道还有其他类似的问题,但我已经读了很多,我不知道我错在哪里。

这是我的代码:

代码语言:javascript
复制
RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
           (@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);
        registrybrowser.SetValue("myAppName", 0x02710, RegistryValueKind.DWord); //Even with QWord

我尝试了不同的方法来设置值,如下所示:

代码语言:javascript
复制
registrybrowser.SetValue("myAppName", 1000, RegistryValueKind.DWord); //Even with QWord and String
registrybrowser.SetValue("myAppName", 1000); //even with 0x02710

在InitializeComponent()之前,我将它写在主项目的构造器中。我在.manifest文件中设置了管理员权限

感谢所有人,BlackShawarna

编辑:我发现RegistryKey.SetValue(...);在另一个路径中创建了一个密钥:

代码语言:javascript
复制
(@"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,它不会在我的原始路径中写入密钥。

EN

回答 4

Stack Overflow用户

发布于 2013-10-16 21:32:35

我遇到了同样的问题,即我的应用程序将值写入"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION".

我将LocalMachine更改为CurrentUser,现在它可以工作了。

代码语言:javascript
复制
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();

executableName类似于"myAppName.exe“

注意:如果WebBrowser控制在一个动态链接库中,你需要指定宿主可执行文件的名称,不管它是什么,例如System.AppDomain.CurrentDomain.FriendlyName

票数 9
EN

Stack Overflow用户

发布于 2013-07-26 21:11:08

FEATURE_BROWSER_EMULATION "myAppName.exe"=10000 (或0x02710)而不是1000。

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

对我来说很管用

票数 3
EN

Stack Overflow用户

发布于 2013-10-13 02:33:29

你应该说“myAppName.exe”而不是“myAppName”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15829397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档