Delphi Desktop-Screenshot in Windows 10, Problem mit GetDeviceCaps

Wie bekomme ich die richtige Bildschirmgröße, um in Windows10 einen Screenshot aufzunehmen? es scheint falsche Werte zu bekommen (vielleicht DPI-Problem?)

d. h.

// screenshot
b := TBitmap.Create;
DC := GetDC(GetDesktopWindow);
try
  b.Width  := GetDeviceCaps (DC, HORZRES) ;
  b.Height := GetDeviceCaps (DC, VERTRES) ;
  BitBlt(b.Canvas.Handle, 0, 0, b.Width, b.Height, DC, 0, 0, SRCCOPY) ;
finally
  ReleaseDC (GetDesktopWindow, DC) ;
end;

Auf einem 4K-Bildschirm wird nur ein kleiner Teil in der oberen linken Ecke erfasst.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage