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.