示例#1
0
        /// <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);
        }
示例#2
0
文件: MainForm.cs 项目: zedjia/Ber
        /// <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();
                //}
            }
        }
示例#3
0
文件: MainForm.cs 项目: zedjia/Ber
        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();
        }
示例#4
0
文件: MainForm.cs 项目: zedjia/Ber
        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;
        }