¿Te sirve esto?
Código:
(* Rutina para capturar la imaen de la ventana activa *)
var
ActiveWnd: HWnd;
WinRect: TRect;
Bitmap: TBitmap;
Canvas: TCanvas;
begin
{ Obtener ventana activa }
ActiveWnd := GetForegroundWindow();
{ Obtener dimensiones de la ventana activa }
GetWindowRect(ActiveWnd, WinRect);
{ Crear bitmap con las dimensiones de la ventana activa }
Bitmap := TBitmap.Create;
Bitmap.Width := WinRect.Right - WinRect.Left;
Bitmap.Height := WinRect.Bottom - WinRect.Top;
{ Obtener un canvas para la ventana activa }
Canvas := TCanvas.Create;
Canvas.Handle := GetWindowDc(ActiveWnd);
{ Copiar el canvas de la ventana activa al bitmap }
WinRect := Rect(0, 0, Bitmap.Width, Bitmap.Height);
Bitmap.Canvas.CopyRect(WinRect, Canvas, WinRect);
{ Guardar el bitmap en un archivo }
Bitmap.SaveToFile('window.bmp');
{ Liberar recursos }
Canvas.Free;
Bitmap.Free;
end;
Bye