Winform中使用 webbrowser设置 IE版本
//如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容。解决方法是在注册表中为你的进程指定引用IE的版本号。 //比如我的程序叫做a.exe //对于32位程序 //HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION //对于64位程序 //HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION //在对应的路径下添加你程序名字,如a.exe为名的value,DWORD值。 //值选项: //10000(0×2710) IE10 //9999 (0x270F) IE9 忽略html5 //9000 (0×2328) IE9 //8888 (0x22B8) IE8 忽略html5 //8000 (0x1F40) IE8 //7000 (0x1B58) IE7 /// <summary> /// 获取操作系统位数 /// </summary> /// <returns></returns> private string OSBit() { try { ConnectionOptions oConn = new ConnectionOptions(); System.Management.ManagementScope managementScope = new System.Management.ManagementScope("\\\\localhost", oConn); System.Management.ObjectQuery objectQuery = new System.Management.ObjectQuery("select AddressWidth from Win32_Processor"); ManagementObjectSearcher moSearcher = new ManagementObjectSearcher(managementScope, objectQuery); ManagementObjectCollection moReturnCollection = null; string addressWidth = null; moReturnCollection = moSearcher.Get(); foreach (ManagementObject oReturn in moReturnCollection) { addressWidth = oReturn["AddressWidth"].ToString(); } return addressWidth; } catch { return "获取错误"; } } //我自己写了一个方法,用到了注册表操作类,请参考宝典内的注册表操作类 /// <summary> /// 设置Webbrowser控件使用的IE版本 /// </summary> /// <param name="Case">1为IE7 2为IE8 3为IE8(忽略html5) 4为IE9 5为IE9(忽略html5) 6为IE10</param> /// <returns></returns> private bool SetBrowserIe(int Case = 3) { //先判断系统位数 int BitInt = 0; string Bit = OSBit(); if (Bit == "获取错误") { MessageBox.Show("获取操作系统位数失败,请联系管理员!", "提示"); return false; } else { BitInt = int.Parse(Bit.Trim()); } string RigDitPath = ""; if (BitInt == 32) { RigDitPath = @"Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"; } else { RigDitPath = @"Software\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"; } // RegistryHelper Rjdeal = new RegistryHelper(); //指定要操作的注册表路径 HKEY_LOCAL_MACHINE\SOFTWARE RegistryKey fatherrjc = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(RigDitPath, true); Int32 a = 0; //这里加unchecked 主要怕溢出 unchecked { switch (Case) { case 1: a = (Int32)0x00001B58; break; case 2: a = (Int32)0x00001F40; break; case 3: a = (Int32)0x000022B8; break; case 4: a = (Int32)0x00002328; break; case 5: a = (Int32)0x0000270F; break; case 6: a = (Int32)0x00002710; break; } } string CxName = Process.GetCurrentProcess().MainModule.ModuleName; if (CxName != "") { fatherrjc.SetValue(CxName, a); } else { MessageBox.Show("IE操作发送严重异常,请联系管理员", "提示"); return false; } return true; } //调用 SetBrowserIe(6);