Browser.cs 3.9 KB

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