Screenshot des Windows-Desktops |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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;
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;
begin
MakeScreenShot(Image1.Picture.Bitmap);
Image1.Repaint;
end;