Witam,
na początek wklejam kod

program cmdscreen;


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

var
  CAN: TCanvas;
  BMP: TBitmap;
  DATA: string;
  SYSTIME: SYSTEMTIME;

begin
  try
   try
      CAN := TCanvas.Create;
      CAN.Handle := GetWindowDC(GetDesktopWindow);
      BMP := TBitmap.Create;
      BMP.Width := Screen.Width;
      BMP.Height := Screen.Height;
      BMP.Canvas.CopyRect(Rect(0, 0, Screen.Width, Screen.Height),
                          CAN,Rect (0, 0, Screen.Width, Screen.Height));
      GetLocalTime(SYSTIME);
      DATA:=IntToStr(SYSTIME.wYear)+IntToStr(SYSTIME.wMonth)
           +IntToStr(SYSTIME.wDay)+IntToStr(SYSTIME.wHour)
           +IntToStr(SYSTIME.wMinute)+IntToStr(SYSTIME.wSecond);
      BMP.SaveToFile('scr'+DATA+'.bmp');
    finally
      CAN.Free;
      BMP.Free;
    end;
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;

end.

Chodzi o to że chciałem uruchamiać program z wiersza poleceń poprzez połączenie telnetem na PC "klienta", program poprawnie robi zrzut ekranu i zapisuje go do pliku jak jest uruchomiony "normalnie" czyli z normalnego wiersza poleceń na koncie "desktopowym" natomiast jak uruchomie program przez telneta to zapisuje sie pusta bitmapa, domyślam się że program uruchomiony przez telneta nie ma "własnego" desktop-u i stąd ten efekt ale w jaki sposób dobrać się do Desktop-u
aktualnie zalogowanego konta na PC ?
ps. kod do pobrania obrazu jest gdzieś na tym forum i nie jest mojego autorstwa.