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
).
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;