Dein Code bringt eine
AV bei mir. Aber ich hab jetzt grad auch ne Lösung gefunden.
Einfach ein Screenshot vom Desktop machen und die Panel angeben.
Delphi-Quellcode:
procedure TForm1.MakeSnapShot(const Target: TBitmap);
var
DesktopDC: HDC;
begin
DesktopDC := CreateDC('DISPLAY', nil, nil, nil);
try
Target.PixelFormat := pfDevice;
Target.Width := Panel1.Width;
Target.Height := Panel1.Height;
BitBlt(Target.Canvas.Handle, -Form1.Left - Panel1.Left, -Form1.Top - Panel1.Top -20, Screen.Width, Screen.Height, DesktopDC, 0, 0, SRCCOPY);
finally
DeleteDC(DesktopDC);
end;
end;