Browser.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System;
  2. using System.Diagnostics;
  3. using System.Windows.Forms;
  4. using UAS_Web.tool;
  5. using CefSharp;
  6. using CefSharp.WinForms;
  7. using System.Text.RegularExpressions;
  8. using System.Collections.Generic;
  9. using System.Net;
  10. using System.Text;
  11. using System.IO;
  12. namespace UAS_Web
  13. {
  14. public partial class Browser : Form
  15. {
  16. private ChromiumWebBrowser webBrowser;
  17. public Browser()
  18. {
  19. InitializeComponent();
  20. Text = "供应商条码打印";
  21. string path = "http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp";
  22. webBrowser = new ChromiumWebBrowser(path)
  23. {
  24. Dock = DockStyle.Fill
  25. };
  26. CheckForIllegalCrossThreadCalls = false;
  27. webBrowser.MenuHandler = new MenuHandler();
  28. webBrowser.RequestHandler = new RequestHandler();
  29. webBrowser.DownloadHandler = new DownLoadFile();
  30. Controls.Add(webBrowser);
  31. webBrowser.LoadError += WebBrowser_LoadError;
  32. webBrowser.FrameLoadEnd += FrameLoadEnd;
  33. webBrowser.FrameLoadStart += WebBrowser_FrameLoadStart;
  34. }
  35. private void WebBrowser_FrameLoadStart(object sender, FrameLoadStartEventArgs e)
  36. {
  37. }
  38. void FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
  39. {
  40. if (e.Url.Contains("vendbarcode/login.jsp") || e.Url.Contains("relogin.action"))
  41. {
  42. e.Browser.FocusedFrame.EvaluateScriptAsync("document.getElementById('username').value = '"+BaseUtil.GetCacheData("username") +"';document.getElementById('password').value = '"+ BaseUtil.GetCacheData("password") + "';document.getElementById('master').innerHTML = '"+ BaseUtil.GetCacheData("master") + "';document.getElementById('master1').value = '"+ BaseUtil.GetCacheData("master1") + "';", new TimeSpan(600000));
  43. }
  44. var cookiemanager = CefSharp.Cef.GetGlobalCookieManager();
  45. CookieVisitor visitor = new CookieVisitor();
  46. visitor.SendCookie += visitor_SendCookie;
  47. cookiemanager.VisitAllCookies(visitor);
  48. }
  49. private void visitor_SendCookie(CefSharp.Cookie obj)
  50. {
  51. if (obj.Path.Contains("jsps/vendbarcode"))
  52. {
  53. if (obj.Name == "username")
  54. BaseUtil.SetCacheData("username", obj.Value);
  55. if (obj.Name == "password")
  56. BaseUtil.SetCacheData("password", obj.Value);
  57. if (obj.Name == "master_name")
  58. BaseUtil.SetCacheData("master_name", obj.Value);
  59. if (obj.Name == "master_fun")
  60. BaseUtil.SetCacheData("master_fun", obj.Value);
  61. }
  62. }
  63. private void WebBrowser_LoadError(object sender, LoadErrorEventArgs e)
  64. {
  65. //指定放大镜
  66. if (e.FailedUrl.Contains("vendbarcode/batchdelivery.jsp?whoami=Delivery!Deal#"))
  67. return;
  68. if (e.FailedUrl.Contains("common/excel"))
  69. return;
  70. if (e.FailedUrl.Contains("common/downloadbyId.action"))
  71. return;
  72. MessageBox.Show("当前网络无法访问" + e.ErrorText);
  73. }
  74. private void Browser_FormClosing(object sender, FormClosingEventArgs e)
  75. {
  76. webBrowser.GetBrowser().CloseBrowser(true);
  77. Process.GetCurrentProcess().Kill();
  78. }
  79. private void Browser_Load(object sender, EventArgs e)
  80. {
  81. Process[] pro = Process.GetProcessesByName("UAS_Web");
  82. for (int i = 0; i < pro.Length; i++)
  83. {
  84. if (pro[i].Id != Process.GetCurrentProcess().Id)
  85. {
  86. pro[i].Kill();
  87. }
  88. }
  89. }
  90. }
  91. }