分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

webBrowser兼容

发布时间:2023-09-06 02:31责任编辑:蔡小小关键词:暂无标签
using Microsoft.Win32;using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DCSY.Base{ ???public class WebBrower ???{ ???????/// <summary> ?????????/// 修改注册表信息来兼容当前程序 ?????????/// ??????????/// </summary> ?????????public static void SetWebBrowserFeatures(int ieVersion) ???????{ ???????????// 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); ???????????//得到浏览器的模式的值 ?????????????UInt32 ieMode = GeoEmulationModee(ieVersion); ???????????var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\"; ???????????//设置浏览器对应用程序(appName)以什么模式(ieMode)运行 ?????????????Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION", ???????????????appName, ieMode, 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); ?????????????//Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE", ?????????????// ???appName, 0, RegistryValueKind.DWord); ?????????} ???????/// <summary> ?????????/// 获取浏览器的版本 ?????????/// </summary> ?????????/// <returns></returns> ?????????static int GetBrowserVersion() ???????{ ???????????int browserVersion = 0; ???????????using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer", ???????????????RegistryKeyPermissionCheck.ReadSubTree, ???????????????System.Security.AccessControl.RegistryRights.QueryValues)) ???????????{ ???????????????var version = ieKey.GetValue("svcVersion"); ???????????????if (null == version) ???????????????{ ???????????????????version = ieKey.GetValue("Version"); ???????????????????if (null == version) ???????????????????????throw new ApplicationException("Microsoft Internet Explorer is required!"); ???????????????} ???????????????int.TryParse(version.ToString().Split(‘.‘)[0], out browserVersion); ???????????} ???????????//如果小于7 ?????????????if (browserVersion < 7) ???????????{ ???????????????throw new ApplicationException("不支持的浏览器版本!"); ???????????} ???????????return browserVersion; ???????} ???????/// <summary> ?????????/// 通过版本得到浏览器模式的值 ?????????/// </summary> ?????????/// <param name="browserVersion"></param> ?????????/// <returns></returns> ?????????static UInt32 GeoEmulationModee(int browserVersion) ???????{ ???????????UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode. ??????????????switch (browserVersion) ???????????{ ???????????????case 7: ???????????????????mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode. ??????????????????????break; ???????????????case 8: ???????????????????mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode. ??????????????????????break; ???????????????case 9: ???????????????????mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. ?????????????????????????????????????????break; ???????????????case 10: ???????????????????mode = 10000; // Internet Explorer 10. ?????????????????????break; ???????????????case 11: ???????????????????mode = 11000; // Internet Explorer 11 ?????????????????????break; ???????????} ???????????return mode; ???????} ???}}

webBrowser兼容

原文地址:https://www.cnblogs.com/daimaxuejia/p/10313633.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved