Вам нужно сделать снимок экрана из DC рабочего стола в растровое изображение в памяти.
procedure CaptureScreenShot(acapture: TBitMap);
var c: TCanvas;
r: TRect;
begin
c:= TCanvas.Create;
c.Handle:= GetWindowDC (GetDesktopWindow);
try
r:= Rect(0,0,screen.width,screen.height);
acapture.Width:=screen.Width;
acapture.Height:=screen.Height;
acapture.Canvas.CopyRect(r, c, r);
finally
ReleaseDC(0, c.handle);
c.Free;
end;
end;
Добавьте к этому ответу Уве, чтобы сделать вашу форму невидимой, и вы получите ....
FCapturedScreenShot:TBitmap;
....
FCapturedScreenShot:=TBitmap.Create;
....
AlphaBlend:=true;
AlphaBlendValue:=0;
CaptureScreenshot(FCapturedScreenShot);
AlphaBlendValue:=False;
используйте захваченный скриншот для любых целей, вы можете назначить его поверх растрового изображения в другой форме или сохранить его в массиве захваченных экранов ...