/// <summary> /// ブラウザを初期化します。 /// 最初の呼び出しのみ有効です。二回目以降は何もしません。 /// </summary> void InitializeBrowser() { if (Browser != null) { return; } if (ProxySettings == null) { return; } var settings = new CefSettings() { BrowserSubprocessPath = Path.Combine( AppDomain.CurrentDomain.SetupInformation.ApplicationBase, Environment.Is64BitProcess ? "x64" : "x86", "CefSharp.BrowserSubprocess.exe"), CachePath = BrowserCachePath, Locale = "ja", AcceptLanguageList = "ja,en-US,en", // todo: いる? LogSeverity = Configuration.SavesBrowserLog ? LogSeverity.Error : LogSeverity.Disable, LogFile = "BrowserLog.log", }; if (!Configuration.HardwareAccelerationEnabled) { settings.DisableGpuAcceleration(); } settings.CefCommandLineArgs.Add("proxy-server", ProxySettings); if (Configuration.ForceColorProfile) { settings.CefCommandLineArgs.Add("force-color-profile", "srgb"); } CefSharpSettings.SubprocessExitIfParentProcessClosed = true; Cef.Initialize(settings, false, (IBrowserProcessHandler)null); var requestHandler = new CustomRequestHandler(pixiSettingEnabled: Configuration.PreserveDrawingBuffer); requestHandler.RenderProcessTerminated += (mes) => AddLog(3, mes); Browser = new ChromiumWebBrowser(@"about:blank") { Dock = DockStyle.None, Size = SizeAdjuster.Size, RequestHandler = requestHandler, MenuHandler = new MenuHandler(), KeyboardHandler = new KeyboardHandler(), DragHandler = new DragHandler(), }; Browser.LoadingStateChanged += Browser_LoadingStateChanged; Browser.IsBrowserInitializedChanged += Browser_IsBrowserInitializedChanged; SizeAdjuster.Controls.Add(Browser); }
/// <summary> /// 动态增加币种监测,并进行数据展示 /// </summary> /// <param name="list"></param> void addTabsToWatch(params TableConfig[] tableConfigs) { foreach (var item in tableConfigs) { if (CurrentBrowsers.ContainsKey(item.alias)) { MessageBox.Show(string.Format("币种({0})已经在被监控了", item.alias)); return; } TabPage tab = new TabPage(item.alias); tabContainer.TabPages.Add(tab); TabShowControl uc = new TabShowControl(item); tab.Controls.Add(uc); CustomWebBrowser browser = new CustomWebBrowser(item.url, item.alias); if (item.sourcesite == null || item.sourcesite.ToLower() == "jubi") { var requestHandler = new CustomRequestHandler(browser, item.alias); requestHandler.NotifyOrderData += RequestHandler_NotifyOrderData; browser.RequestHandler = requestHandler; requestHandler.SetUpdateLabel = uc.SetLastUpdateTimeLabel; } else if (item.sourcesite.ToLower() == "btc9") { var requestHandler = new BTC9RequestHandler(browser, item.alias, item.Bid); requestHandler.NotifyOrderData += RequestHandler_NotifyOrderData; browser.RequestHandler = requestHandler; requestHandler.SetUpdateLabel = uc.SetLastUpdateTimeLabel; } CurrentBrowsers.TryAdd(item.alias, browser); //if (!) //{ // MessageBox.Show(string.Format("币种({0})已经在被监控了",item.alias)); // browser.CloseDevTools(); // browser.GetBrowser().CloseBrowser(true); // browser.Dispose(); //} } }
void InitBrowser() { var setting = new CefSettings(); setting.Locale = "zh-CN"; //Cef.Initialize(setting); //browser = new ChromiumWebBrowser("http://localhost"); string _url = CurrentConfig.SystemUrl; browser = new ChromiumWebBrowser(_url); //browser.FrameLoadStart += browser_FrameLoadStart; //browser.FrameLoadEnd += browser_FrameLoadEnd; //browser.LifeSpanHandler = new CustomLifeSpanHandler(); var requestHandler = new CustomRequestHandler(); requestHandler.NotifyOrderData += RequestHandler_NotifyOrderData; browser.RequestHandler = requestHandler; //browser.RegisterJsObject("WCShell", new JsEventFunction(this)); //browser.MenuHandler=new MenuHandler(); }
void InitOffScreenBrowser() { var settings = new CefSettings() { //By default CefSharp will use an in-memory cache, you need to specify a Cache Folder to persist data CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache") }; //Perform dependency check to make sure all relevant resources are in our output directory. Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null); // Create the offscreen Chromium browser. browser = new ChromiumWebBrowser(CurrentConfig.SystemUrl); var requestHandler = new CustomRequestHandler(); requestHandler.NotifyOrderData += RequestHandler_NotifyOrderData; browser.RequestHandler = requestHandler; // An event that is fired when the first page is finished loading. // This returns to us from another thread. //browser.LoadingStateChanged += BrowserLoadingStateChanged; }