![]() |
ScreenShot in Datei speichern
Anbei eine Funktion, welche den gesamten Bildschirm, auch bei Mehr-Monitorsystemen ;) in eine BMP-Datei speichert. Einfach der Funktion den Dateinamen als Paramter übergeben und fertig!
Im Vergleich zu meinem alten Library-Eintrag dürfte diese Funktion etwas schneller sein, man lernt ja nie aus :mrgreen:
Delphi-Quellcode:
...:cat:...
procedure ScreenToFile(aFileName: string);
var Bitmap: TBitmap; Canvas: TCanvas; begin Canvas := TCanvas.Create; try Canvas.Handle := GetWindowDC(0); try Bitmap := TBitmap.Create; try Bitmap.Width := Screen.DesktopWidth; Bitmap.Height:= Screen.DesktopHeight; Bitmap.PixelFormat := pfDevice; (* Bitmap.Canvas.CopyRect(Screen.DesktopRect, Canvas, Screen.DesktopRect); Anstatt der folgenden Zeile, kann auch die CopyRect Funktion genutzt werden. Die CopyRect-Funktion nutzt zusätzlich ein paar Schutzmechanismen, welche für ScreenShots nicht notwendig sind. Ausserdem greift die CopyRect-Funktion auf StretchBlt-Funktion zurück, welche langsamer als BitBlt ist. *) BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred( Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft, Screen.DesktopTop, Bitmap.Canvas.CopyMode); Bitmap.SaveToFile(aFileName); finally Bitmap.Free; end; finally ReleaseDC(0, Canvas.Handle); end; finally Canvas.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz