Hola amigos, estoy desarrollando un pequeño programa para control remoto, tengo una aplicacion cliente y una server, la aplicacion cliente manda una peticion cada segundo al servidor y este le manda al cliente una imagen de una ventana todo esto por medio de sockets, esto funcionan bien, el problema es que al bloquear la sesion ("WIN+L") , la aplicacion cliente conecta bien pero de alguna manera la imagen de capatura que envia se vuelve en blanco, he probado con varias funciones para capturar la imagen pero creo que el problema no va por ahi, pareciera que al bloquear la sesion la ventana queda inactiva...

.
lo que quiero hacer es que se puede capturar la imagen de la ventana aun bloqueada la session, me parece extraño ya que la aplicacion cliente conecta bien con la aplicacion server.
Código Delphi
[-]
procedure ScreenShot(activeWindow: bool; destBitmap : TBitmap ; hWin : Cardinal) ;
var
w,h : integer;
DC : HDC;
r : TRect;
begin
if activeWindow then
begin
hWin := GetForegroundWindow;
hWin := GetForegroundWindow;
dc := GetWindowDC(hWin) ;
GetWindowRect(hWin,r) ;
w := r.Right - r.Left;
h := r.Bottom - r.Top;
end
else
begin
hWin := GetDesktopWindow;
dc := GetDC(hWin) ;
w := GetDeviceCaps (DC, HORZRES) ;
h := GetDeviceCaps (DC, VERTRES) ;
end;
try
destBitmap.Width := w;
destBitmap.Height := h;
BitBlt(destBitmap.Canvas.Handle,
0,
0,
destBitmap.Width,
destBitmap.Height,
DC,
0,
0,
SRCCOPY) ;
finally
ReleaseDC(hWin, DC) ;
end;
end;