using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Windows.Forms; using Lskj.Control.Model; using Lskj.Model; using Lskj.Business.Impl; using Lskj.Util; using System.Web; using Lskj.Business; using Lskj.Control; using Xilium.CefGlue; using Lskj.Control.BrowserSetting; using System.Net; using System.Collections; using System.Linq; using Lskj.Web.Core.Util; namespace Lskj.Control { public partial class FrmWebBrowser : UserControl { public DynamicPubBrowerModel PubBrowerModel; public CefBrowser cefBrowserSettings; public FrmWebBrowser() { InitializeComponent(); } void Form1_FormClosed(object sender, FormClosedEventArgs e) { //CefRuntime.Shutdown(); } public void FrmLoad(string url, int RightKeyFlag = 0) { var cefWindowInfo = CefWindowInfo.Create(); cefWindowInfo.SetAsChild(this.Handle, new CefRectangle(0, 0, this.Width, this.Height)); var bsClient = new BsClient(RightKeyFlag); bsClient.frmWebBrowser = this; bsClient.OnCreated += bsClient_OnCreated; var cefBrowserSettings = new CefBrowserSettings(); //Url = "https://ie.icoa.cn/"; CefBrowserHost.CreateBrowser(cefWindowInfo, bsClient, cefBrowserSettings, ToEnUrl(url)); //清除所有Cookie var cookieManager = CefCookieManager.GetGlobal(null); cookieManager.DeleteCookies("", "", null); } private void bsClient_OnCreated(object sender, EventArgs e) { cefBrowserSettings = (CefBrowser)sender; var handle = cefBrowserSettings.GetHost().GetWindowHandle(); ResizeWindow(handle, this.Width, this.Height); } protected override void OnResize(EventArgs e) { base.OnResize(e); if (cefBrowserSettings != null) { ResizeWindow(cefBrowserSettings.GetHost().GetWindowHandle(), Width, Height); } } public void ResizeWindow(IntPtr handle, int width, int height) { NativeMethod.SetWindowPos(handle, IntPtr.Zero, 0, 0, width, height, 0x0002 | 0x0004 ); } public void LoadUrl(string url) { if (cefBrowserSettings != null) { cefBrowserSettings.GetMainFrame().LoadUrl(ToEnUrl(url)); } } public void LoadRequest(string url, string dataStr) { BrowserSetting.HttpTools.setting("application/x-www-form-urlencoded", null, null); Dictionary dataDic = new Dictionary(); dataDic.Add("billCode", dataStr); HttpWebResponse webResponse = BrowserSetting.HttpTools.Post(url, "", dataDic, null, HttpTools.Method.POST); if (webResponse != null) { cefBrowserSettings.GetMainFrame().LoadUrl(webResponse.ResponseUri.AbsoluteUri); } } public static string ToEnUrl(string url) { string[] urlParams = url.Split('?'); string enKey = "encrypt", enVal = ""; bool hasEn = false; if (urlParams.Length > 1) { string[] queryParams = urlParams[1].Split('&'); List qpLS = new List(); Hashtable pms = new Hashtable(); hasEn = queryParams.Any(str => str.Trim().StartsWith(enKey, StringComparison.OrdinalIgnoreCase)); foreach (string q in queryParams) { string[] eqParams = q.Split('='); if (eqParams.Length > 1) { if (hasEn && eqParams[0].ToLower() == enKey) { enVal = eqParams[1]; continue; } if (hasEn || eqParams[0].ToLower() == "username" || eqParams[0].ToLower() == "password") { pms.Add(eqParams[0], eqParams[1]); } else