Home » Tipps & Tricks » Grafik » Sonstiges » Screenshot des Windows-Desktops

Screenshot des Windows-Desktops

Folgende Prozedur macht einen Screenshot des Windows-Desktops und entspricht dem Ergebnis, das durch die Taste „DRUCK“ erzeugt wird.

procedure MakeScreenShot(const ATarget: TBitmap);
var
  DesktopDC: HDC;
begin
  DesktopDC := CreateDC('DISPLAY', nil, nil, nil);
  try
    ATarget.PixelFormat := pfDevice;
    ATarget.Width := Screen.Width;
    ATarget.Height := Screen.Height;
  
    BitBlt(ATarget.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DesktopDC, 0, 0, SRCCOPY);
  finally
    DeleteDC(DesktopDC);
  end;
end;

Die Prozedur erwartet als Parameter ein Objekt vom Typ TBitmap:

procedure TForm1.Button1Click(Sender: TObject);
begin
  MakeScreenShot(Image1.Picture.Bitmap);
  Image1.Repaint;
end;