Скриншот страницы браузера C#

472
16 августа 2017, 15:58

Помогите сделать скриншот бразуера, только без видимости вкладок и закладок. Делаю вот так, а оно делает скриншот не всего окна.

Process.Start("chrome.exe", "http://google.com");
        await Task.Delay(3000);
        Rectangle bounds = Screen.GetBounds(Point.Empty);
        using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
        {
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
            }
            bitmap.Save("test.jpg", ImageFormat.Jpeg);
        }

P.S. webbrowser не предлагать, тк не все скрипты обрабатывает, даже со webBrowser1.ScriptErrorsSuppressed = true;

Answer 1

Как подсказывает @DollaDollar, такое можно реализовать с помощью библиотеки Awesomium.NET.
Установите в своей проект Awesomium.NET библиотеку(я для примера установил просто nuget-библиотеку Unofficial.Awesomium.Complete) и напишите следующий код

var webView = WebCore.CreateWebView(1920, 1080);
webView.Source = new Uri("http://www.google.com");
webView.LoadingFrameComplete += (s, e) =>
{
   if (!e.IsMainFrame)
        return;
   BitmapSurface surface = (BitmapSurface)webView.Surface;
   surface.SaveToPNG("result.png", true);
   WebCore.Shutdown();
};
WebCore.Run();
webView.Dispose();

Данный код

  1. Создает объект WebView и загружает веб-страницу
  2. подписывается на событие LoadingFrameComplete - окончания завершения загрузки страницы
  3. Сохраняет страницу(делает скриншот) в png-картинку в файл result.png
READ ALSO
Удалить строки начинающиеся с

Удалить строки начинающиеся с

Вtxt есть строки, которые начинаются с "{"

261
Получение ответа от сом порта

Получение ответа от сом порта

Настраиваю порт, отправляю запросДля обработки ответа использую событие data received

293
Расположение ключей и значений Request.Params

Расположение ключей и значений Request.Params

Есть в проекте вот такая вот строчка

272
Путь к папке для хранения файлов приложения. Xamarin Android

Путь к папке для хранения файлов приложения. Xamarin Android

Я знаю, что у андройд приложений есть папка, к которой имеет доступ только само приложение и системаОна удаляется вместе с приложением

479