public void TakeScreenshotOffscreen(string url, string filename) { var offscreenBrowser = new CefSharp.OffScreen.ChromiumWebBrowser(); offscreenBrowser.BrowserInitialized += (o, args) => { offscreenBrowser.Load(url); offscreenBrowser.FrameLoadEnd += async(sender1, eventArgs) => { if (eventArgs.Frame.IsMain) { var sizes = await offscreenBrowser.EvaluateScriptAsync(JavascriptQueries.RequestForMaxSize); var widthAndHeight = (List <object>)sizes.Result; var screenshotSize = new System.Drawing.Size((int)widthAndHeight[0], (int)widthAndHeight[1]); offscreenBrowser.Size = screenshotSize; await Task.Delay(500); var bitmap = await offscreenBrowser.ScreenshotAsync(false, PopupBlending.Main); bitmap.Save(filename, ImageFormat.Png); offscreenBrowser.Dispose(); Process.Start(new System.Diagnostics.ProcessStartInfo { UseShellExecute = true, FileName = filename }); } }; }; }
public void LoadPageSkyBet(string Url) { browser.ConsoleMessage -= BrowserOnConsoleMessage; browser.LoadingStateChanged -= BrowserOnLoadingStateChanged; browser.BrowserInitialized -= BrowserOnBrowserInitialized; browser.Delete(); browser.Dispose(); browser = new ChromiumWebBrowser(Url); browser.ConsoleMessage += BrowserOnConsoleMessage; browser.LoadingStateChanged += BrowserOnLoadingStateChanged; browser.BrowserInitialized += BrowserOnBrowserInitialized; isLoad = false; // browser.RegisterAsyncJsObject("Alljs", Properties.Resources.jsAllLoadSkybet); var alljs = Properties.Resources.jsAllLoadSkybet; var countUpdate = 0; while (true) { Thread.Sleep(200); countUpdate++; Application.DoEvents(); if (!browser.IsLoading) { if (browser.IsBrowserInitialized) { var sss = browser.EvaluateScriptAsync(alljs).Result; var result = browser.EvaluateScriptAsync("checkLoad()").Result; if ((result.Result != null) && ((bool) result.Result == true)) { var ss = browser.EvaluateScriptAsync(alljs).Result; break; } } } if (countUpdate > 30) { if (browser.IsBrowserInitialized) browser.Delete(); browser.Dispose(); browser = Chrome.InitSkyBet(Url); browser.ConsoleMessage += BrowserOnConsoleMessage; browser.LoadingStateChanged += BrowserOnLoadingStateChanged; browser.BrowserInitialized += BrowserOnBrowserInitialized; isLoad = false; countUpdate = 0; } } }