Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Grafik ausschneiden aus Fenster mit Fokus/Vordergrund

  Alt 15. Feb 2023, 17:06
[Win][Shift][S] (ruft das Windows Snippets Tool auf)

Naja, Scherz beiseite: Mit dem Handle des Fensters kannst Du per API GetWindowRect Position und Größe des Fensters ermitteln. Die klassische GDI-basierte Methode um an den Inhalt als Bitmap zu kommen ist, per GetDC(0) (oder GetDCEx) das display contect handle für den Bildschirm zu besorgen, eine TBitmap der gewünschten Größe anzulegen und per BitBlt den gewünschten Ausschnitt des Bildschirms in diese zu kopieren. Leider funktioniert das nicht mit allen Anwendungen zuverlässig.

Geht in etwa so:
Delphi-Quellcode:
var
  R: TRect;
  H: HDC;
begin
  ... Setz R auf die Koordinaten und Dimension des zu kopierenden Bereichs, in Screen Koordinaten
  H:= GetDC(0);
  try
    aBitmap.SetSize(R.Width, R.Height);
    BitBlt(aBitmap.Canvas.Handle, 0, 0, R.Width, R.Height,
      H, R.Left, R.Top, SRCCOPY);
  finally
    ReleaseDC(0, H);
  end; {finally}
Peter Below
  Mit Zitat antworten Zitat