Screenshot erstellen von sekundärem Monitor
Ich versuche momentan diesen Code so umzubauen, dass er mir einen Screenshot von meinem 2. Monitor macht. Allerdings war ich damit bis jetzt erfolglos, da ich nur Fehler bekomme. Momentan benutze ich folgenden Code, der ist aber nicht besonders schnell (Dafür verstehe ich ihn :lol:).
Delphi-Quellcode:
procedure GetScreenShot(monitor: integer);
var DesktopDC: HDC; begin DesktopDC := CreateDC('DISPLAY', nil, nil, nil); try mainform.Ausgabe.Picture.Bitmap.PixelFormat := pfDevice; mainform.Ausgabe.Picture.Bitmap.Width := Screen.Monitors[monitor].Width; mainform.Ausgabe.Picture.Bitmap.Height := Screen.Monitors[monitor].Height; BitBlt(mainform.Ausgabe.Picture.Bitmap.Canvas.Handle, 0, 0, Screen.Monitors[monitor].Width, Screen.Monitors[monitor].Height, DesktopDC,Screen.Monitors[monitor].left, Screen.Monitors[monitor].top, SRCCOPY); finally DeleteDC(DesktopDC); end; mainform.ausgabe.Repaint; end; |
Re: Screenshot erstellen von sekundärem Monitor
An sich funktioniert das bei Sakuras Methode genau so. Denn da in der Funktion mit Screen.Width gearbeitet wird, arbeitet die Funktion so nur mit dem Hauptmonitor. Wenn du von anderen Monitoren (oder vom gesammten Desktop) einen Screenshot machen willst, dann musst du mit Screen.Monitors[x].Width etc. arbeiten und dir damit anfang und Ende der Monitore raussuchen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz