Screenshot в консольном приложении

125
30 июня 2019, 16:20

Нашёл только ответ, как сделать в приложении с Windows Forms, вот этот код:

Graphics graph = null;
var bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
Screen.PrimaryScreen.Bounds.Height);
graph = Graphics.FromImage(bmp);
graph.CopyFromScreen(0, 0, 0, 0, bmp.Size);
bmp.Save("filename");

Но если добавить его в консольном приложении, то Graphics, Bitmap, Screenshot не воспринимаются (подчёркиваются красной волнистой линией). Добавив

using System.Windows.Forms;

Я избавился от проблем с Graphics и Bitmap, однако Screen во второй строчке все равно не воспринимаются программой. Как можно сделать скриншот экрана из консольного приложения?

Answer 1

Итак, решение было таковым:

using System;
using System.Windows.Forms;
using System.Drawing;
namespace Screenshot
{
    class Program
    {
        static void Main(string[] args)
        {
            Graphics graph = null;
            var bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
            Screen.PrimaryScreen.Bounds.Height);
            graph = Graphics.FromImage(bmp);
            graph.CopyFromScreen(0, 0, 0, 0, bmp.Size);
            bmp.Save("filename.png");
        }
    }
}

Screen находился в пространстве имен System.Windows.Forms

Bitmap и Graphics - в System.Drawing. И вот так у меня вышел скриншот с полным захватом всего экрана.

READ ALSO
Не работает концентратор SignaR

Не работает концентратор SignaR

Концентратор передается в IhostedService сервис через servicesAddSingleton:

96
Передача массива по AJAX на PHP backend

Передача массива по AJAX на PHP backend

Использую AJAX и передаю массив с даннымиСам массив полностью рабочий (в плане, через js выводится, всё ок, но по ajax в php не передается, точнее...

146