Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Screenshot erstellen von sekundärem Monitor (https://www.delphipraxis.net/100977-screenshot-erstellen-von-sekundaerem-monitor.html)

Delphi Star 6. Okt 2007 13:19


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;

Hador 6. Okt 2007 13:53

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