Captura de pantalla de Windows con escala

Estoy tratando de tomar capturas de pantalla de cada pantalla en mi máquina con Windows 10. Mi sistema tiene 2 monitores que son de múltiples DPI.

Mi monitor principal tiene "escala y diseño" establecido en 200%.Mi secundaria tiene "escala y diseño" establecido al 100%.

Estoy tratando de usar C # para tomar una captura de pantalla de cada monitor. Sin embargo, mi monitor escalado informa las coordenadas incorrectas: todo se reduce a la mitad. Como resultado, la captura de pantalla del monitor principal es solo 1/4 del área de la pantalla (ancho / 2, alto / 2).

Aquí está mi código:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Imaging;

namespace CsSourceClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Screen[] screens;
            screens = Screen.AllScreens;


            int i = 0;

            foreach (var screen in System.Windows.Forms.Screen.AllScreens)
            {
                var savePath = "monitor" + i+".jpg";
                var x = screen.Bounds.Location.X;
                var y = screen.Bounds.Location.Y;
                var w = screen.Bounds.Width;
                var h = screen.Bounds.Height;
                Console.Out.WriteLine("Monitor: " + i + " extents:" + x + "," + y + " " + w + "," + h);
                using (Bitmap bmp = new Bitmap(w, h))
                {
                    using (Graphics g = Graphics.FromImage(bmp))
                    {
                        g.CopyFromScreen(x, y, 0, 0, bmp.Size);
                    }

                    bmp.Save(savePath, ImageFormat.Jpeg);
                    Console.Out.WriteLine("saved: " + savePath);
                }
                i++;
            }



        }
    }
}

PD: obtengo valores diferentes en función de lo que configuré "dpiaware" en el archivo de manifiesto:https://social.msdn.microsoft.com/Forums/en-US/054c1d49-9f24-4617-aa83-9bc4f1bb4a5d/use-appmanifest-file-to-make-winforms-application-dpi-aware?forum=vbgeneral

Si no configuro dpiaware, los límites del monitor principal se reducen a la mitad (recortando 3/4 de la pantalla). Si configuro dpiaware en verdadero, los límites del monitor secundario se duplican (dejando grandes áreas negras en la captura de pantalla).

Respuestas a la pregunta(1)

Su respuesta a la pregunta