C # Скриншот Полное окно - PullRequest
       11

C # Скриншот Полное окно

0 голосов
/ 14 января 2019

Я пытаюсь написать консольное приложение, используя .NET Framework. Я хочу сделать скриншот моего экрана. Я использовал другие ответы на SO, как это:

https://stackoverflow.com/a/24879511/9457997

Проблема в том, что это не захватывает весь мой экран. Недостает около 1/5 на нижней и правой стороне.

Как мне захватить весь экран с помощью C # .NET Framework?

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Использование VirtualScreen :

int screenLeft = SystemInformation.VirtualScreen.Left;
int screenTop = SystemInformation.VirtualScreen.Top;
int screenWidth = SystemInformation.VirtualScreen.Width;
int screenHeight = SystemInformation.VirtualScreen.Height;

// Create a bitmap of the appropriate size to receive the full-screen screenshot.
using (Bitmap bitmap = new Bitmap(screenWidth, screenHeight))
{
    // Draw the screenshot into our bitmap.
    using (Graphics g = Graphics.FromImage(bitmap))
    {
        g.CopyFromScreen(screenLeft, screenTop, 0, 0, bitmap.Size);
    }

    //Save the screenshot as a Jpg image
    var uniqueFileName = "C:\\temp\\a.Jpg";
    try
    {
        bitmap.Save(uniqueFileName, ImageFormat.Jpeg);
    }
    catch (Exception ex) {
    }
 }
0 голосов
/ 14 января 2019

Вы можете использовать Screen.PrimaryScreen.Bounds;, чтобы получить границы вашего экрана.

Rectangle bounds = Screen.PrimaryScreen.Bounds;
using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
using (Graphics g = Graphics.FromImage(bitmap))
{
    g.CopyFromScreen(new Point(bounds.Left, bounds.Top), Point.Empty, bounds.Size);
    bitmap.Save("C://test.jpg", ImageFormat.Jpeg);
}

Вам нужно будет сослаться на System.Drawing, System.Drawing.Imaging и System.Windows.Forms, чтобы этот пример кода работал в консольном приложении.

...