QCM030715.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Microsoft.Win32;
  11. using System.Diagnostics;
  12. namespace Core.LZMes.Client.QCM.QCM03
  13. {
  14. public partial class QCM030715 : FrmBase
  15. {
  16. string strurl = "";//URL
  17. public QCM030715()
  18. {
  19. InitializeComponent();
  20. }
  21. public QCM030715(OpeBase op, string url)
  22. {
  23. strurl = url;
  24. InitializeComponent();
  25. }
  26. private void FrmDocPrintExcel_Load(object sender, EventArgs e)
  27. {
  28. //BrowserEmulationSet();
  29. if (string.IsNullOrEmpty(strurl))
  30. {
  31. strurl = this.CustomInfo;
  32. }
  33. webBrowser1.Url = new Uri(strurl);
  34. //this.webBrowser1.ScriptErrorsSuppressed = true; //屏蔽脚本错误
  35. }
  36. public void BrowserEmulationSet()
  37. {
  38. //当前程序名称
  39. var exeName = Process.GetCurrentProcess().ProcessName + ".exe";
  40. //系统注册表信息
  41. var mreg = Registry.LocalMachine;
  42. //IE注册表信息
  43. var ie = mreg.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree);
  44. if (ie != null)
  45. {
  46. try
  47. {
  48. var val = ieVersionEmulation(ieVersion());
  49. if (val != 0)
  50. {
  51. ie.SetValue(exeName, val);
  52. }
  53. mreg.Close();
  54. }
  55. catch (Exception ex)
  56. {
  57. Console.Write(ex.Message);
  58. }
  59. }
  60. }
  61. int ieVersion()
  62. {
  63. //IE版本号
  64. RegistryKey mreg = Registry.LocalMachine;
  65. mreg = mreg.CreateSubKey("SOFTWARE\\Microsoft\\Internet Explorer");
  66. //更新版本
  67. var svcVersion = mreg.GetValue("svcVersion");
  68. if (svcVersion != null)
  69. {
  70. mreg.Close();
  71. var v = svcVersion.ToString().Split('.')[0];
  72. return int.Parse(v);
  73. }
  74. else
  75. {
  76. //默认版本
  77. var ieVersion = mreg.GetValue("Version");
  78. mreg.Close();
  79. if (ieVersion != null)
  80. {
  81. var v = ieVersion.ToString().Split('.')[0];
  82. return int.Parse(v);
  83. }
  84. }
  85. return 0;
  86. }
  87. int ieVersionEmulation(int ieVersion)
  88. {
  89. //IE7 7000 (0x1B58)
  90. if (ieVersion < 8)
  91. {
  92. return 0;
  93. }
  94. if (ieVersion == 8)
  95. {
  96. return 0x1F40;//8000 (0x1F40)、8888 (0x22B8)
  97. }
  98. if (ieVersion == 9)
  99. {
  100. return 0x2328;//9000 (0x2328)、9999 (0x270F)
  101. }
  102. else if (ieVersion == 10)
  103. {
  104. return 0x02710;//10000 (0x02710)、10001 (0x2711)
  105. }
  106. else if (ieVersion == 11)
  107. {
  108. return 0x2AF8;//11000 (0x2AF8)、11001 (0x2AF9
  109. }
  110. return 0;
  111. }
  112. }
  113. }