首页 > 后端开发 > C++ > 正文

为什么将 FEATURE_BROWSER_EMULATION 设置为 IE10 或 IE11 时,Visual Studio 中的 Web 浏览器控件会出现故障?

Patricia Arquette
发布: 2024-11-04 10:15:02
原创
504 人浏览过

Why does my Web Browser control in Visual Studio malfunction when setting FEATURE_BROWSER_EMULATION to IE10 or IE11?

FEATURE_BROWSER_EMULATION 的 Web 浏览器控制模拟问题

问题描述:

使用 Web 时Visual Studio 2013 中的浏览器控件将应用程序的 FEATURE_BROWSER_EMULATION 注册表项设置为 IE10 或 IE11 模拟值会导致控件出现故障。具体来说,Dojo Toolkit 演示页面 (http://demos.dojotoolkit.org/demos/calendar/demo.html) 上的月份日期选择器无法正常工作。

解决方案:

问题出在 FEATURE_NINPUT_LEGACY_MODE 注册表设置中。禁用此设置并通过注册表配置启用其他功能可以解决该问题。以下是修订后的解决方案:

const int POLL_DELAY = 250;
WebBrowser _webBrowser;

// set WebBrowser features, more info: http://stackoverflow.com/a/18333982/1768303
static void SetWebBrowserFeatures()
{
    // don't change the registry if running in-proc inside Visual Studio
    if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
        return;

    var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

    var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";

    Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
        appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);

    // enable the features which are "On" for the full Internet Explorer browser

    Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
        appName, 1, RegistryValueKind.DWord);

    // Disable FEATURE_NINPUT_LEGACY_MODE
    Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
        appName, 0, RegistryValueKind.DWord);
}
登录后复制

通过此更新的配置,Web 浏览器控件现在应该可以在应用程序的 IE10 和 IE11 模拟设置下正常运行。

以上是为什么将 FEATURE_BROWSER_EMULATION 设置为 IE10 或 IE11 时,Visual Studio 中的 Web 浏览器控件会出现故障?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!