Hallo,
mein Programm ist minimiert im Systray und soll einen Screenshot machen, aber das Bild ist immer nur weiß.
Ich benutze folgende Prozedur:
Delphi-Quellcode:
procedure MakeScreenShot(const ATarget: TBitmap);
var DesktopDC: HDC;
begin
DesktopDC := CreateDC('DISPLAY', nil, nil, nil); // habe auch schon GetWindowDC(0) versucht
try
ATarget.PixelFormat := pfDevice;
ATarget.Width := Form1.Width;
ATarget.Height := Form1.Height;
BitBlt(ATarget.Canvas.Handle, Form1.Left, Form1.Top, Form1.Width, Form1.Height, DesktopDC, 0, 0, SRCCOPY);
finally
DeleteDC(DesktopDC);
end;
end;
Wenn ich eine "normale" Anwendung habe, welche nicht im Systray ist, geht alles einwandfrei.