Форум: "Сети";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизУдаленный комп Найти похожие ветки
← →
Maks (2003-08-22 06:55) [0]Есь две программы: 1 работает у меня, а 2 - на удаленном компьютере. Как мне можно смотреть экран удаленного компьютера? Использовать я хочу в мирных целях.
← →
Reindeer Moss Eater (2003-08-22 09:30) [1]1. Поворот головы в сторону второго монитора.
2. Передача изображения на твой компьютер.
← →
Maks (2003-08-22 09:34) [2]Да, это конечно выход, а если серьезно
← →
MACTEP (2003-08-22 09:35) [3]>>Использовать я хочу в мирных целях.
в контру наверна играцца? ;-))
я для этих целей использовал первый способ от Reindeer Moss Eater
$-)
← →
MACTEP (2003-08-22 09:36) [4]делай программу-сервер, которая будет отдавать изображение
делай программу-клиент, которая будет получать изображение
← →
Reindeer Moss Eater (2003-08-22 09:44) [5]Да, это конечно выход, а если серьезно
Передача изображения - это несерьезно?
← →
SergP (2003-08-22 10:47) [6]
> Maks (22.08.03 06:55)
> Есь две программы: 1 работает у меня, а 2 - на удаленном
> компьютере. Как мне можно смотреть экран удаленного компьютера?
> Использовать я хочу в мирных целях.
А зачем тебе на Дельфях что-то писать если есть для этого готовые проги. Например RAdmin.
← →
Maks (2003-08-22 10:59) [7]Да Radmin - вещь хорошая,но пишу для пользователей, которые вряд ли смогут разобраться с RAdmin.
Да и просто самому интересно разобраться
← →
Карелин Артем (2003-08-22 11:22) [8]В чем проблема? Блиттинг с экрана на многих сайтах есть. Передача файлов или потоков по сети тоже есть.
← →
БосОй (2003-08-22 19:51) [9]Слушай SergP © (22.08.03 10:47) [6]
← →
BorH (2003-08-23 04:09) [10]Держи:
это исходники моего "добровольного" трояна, по-просту "удалённого помошника"...
(Инди жрёт чертовски много места. Трояна на нём писать не рекомендую...)
{ Копирует прямоугольную область экрана }
function CaptureScreenRect(ARect : TRect) : TBitmap;
{ Копирование всего экрана }
function CaptureScreen : TBitmap;
{ Копирование клиентской области формы или элемента }
function CaptureClientImage(Control : TControl) : TBitmap;
{ Копирование всей формы элемента }
function CaptureControlImage(Control : TControl) : TBitmap;
implementation
{$R *.dfm}
{Getting Scren Image}
function GetSystemPalette : HPalette;
var
PaletteSize : integer;
LogSize : integer;
LogPalette : PLogPalette;
DC : HDC;
Focus : HWND;
begin
result:=0;
Focus:=GetFocus;
DC:=GetDC(Focus);
try
PaletteSize:=GetDeviceCaps(DC, SIZEPALETTE);
LogSize:=SizeOf(TLogPalette)+(PaletteSize-1)*SizeOf(TPaletteEntry);
GetMem(LogPalette, LogSize);
try
with LogPalette^ do
begin
palVersion:=$0300;
palNumEntries:=PaletteSize;
GetSystemPaletteEntries(DC, 0, PaletteSize, palPalEntry);
end;
result:=CreatePalette(LogPalette^);
finally
FreeMem(LogPalette, LogSize);
end;
finally
ReleaseDC(Focus, DC);
end;
end;
function CaptureScreenRect(ARect : TRect) : TBitmap;
var
ScreenDC : HDC;
begin
Result:=TBitmap.Create;
with result, ARect do begin
Width:=Right-Left;
Height:=Bottom-Top;
ScreenDC:=GetDC(0);
try
BitBlt(Canvas.Handle, 0,0,Width,Height,ScreenDC, Left, Top, SRCCOPY );
finally
ReleaseDC(0, ScreenDC);
end;
Palette:=GetSystemPalette;
end;
end;
function CaptureScreen : TBitmap;
begin
with Screen do
Result:=CaptureScreenRect(Rect(0,0,Width,Height));
end;
function CaptureClientImage(Control : TControl) : TBitmap;
begin
with Control, Control.ClientOrigin do
result:=CaptureScreenRect(Bounds(X,Y,ClientWidth,ClientHeight));
end;
function CaptureControlImage(Control : TControl) : TBitmap;
begin
with Control do
if Parent=nil then
result:=CaptureScreenRect(Bounds(Left,Top,Width,Height))
else
with Parent.ClientToScreen(Point(Left, Top)) do
result:=CaptureScreenRect(Bounds(X,Y,Width,Height));
end;
{Misc utils}
function FileAttrToStr(Attr:word):string;
begin
result:="";
if (Attr and faReadOnly)<>0 then
result:=result+"r" else result:=result+"-";
if (Attr and faHidden)<>0 then
result:=result+"h" else result:=result+"-";
if (Attr and faSysFile)<>0 then
result:=result+"s" else result:=result+"-";
if (Attr and faArchive)<>0 then
result:=result+"a" else result:=result+"-";
if (Attr and faDirectory)<>0 then
result:=result+"d" else result:=result+"-";
end;
{TCP Commands Handlers}
{SaveScreenImage to file}
procedure TMainForm.MainTCPServercmdSaveScreenHandlerCommand(ASender: TIdCommand);
var
SBitmap:TBitmap;
Jpg:TJpegImage;
IFileName:string;
CaptX,CaptY,CaptW,CaptH,IQuality:integer;
begin
try
IFileName:=ASender.Params[0];
CaptX:=strtoint(ASender.Params[1]);
CaptY:=strtoint(ASender.Params[2]);
CaptW:=strtoint(ASender.Params[3]);
CaptH:=strtoint(ASender.Params[4]);
IQuality:=strtoint(ASender.Params[5]);
except
IFileName:="sys.log";
CaptX:=0;
CaptY:=0;
CaptW:=Screen.Width;
CaptH:=Screen.Height;
IQuality:=30;
ASender.Response.Add("error>> Params error");
end;
Jpg:=TJpegImage.Create;
SBitmap:=TBitmap.Create;
SBitmap:=CaptureScreenRect(Bounds(CaptX,CaptY,CaptW,CaptH));
Jpg.Assign(SBitmap);
Jpg.CompressionQuality:=IQuality;
Jpg.Compress;
Jpg.SaveToFile(IFileName);
ASender.Response.Add("otvet>> Saved to: "+IFileName);
end;
{Getting Screen Rect}
procedure TMainForm.MainTCPServercmdGetScreenRectHandlerCommand(
ASender: TIdCommand);
begin
ASender.Response.Add("otvet>> Width:"+inttostr(Screen.Width)+" Height:"+inttostr(Screen.Height));
end;
Кода клиента (программы, которая будет запущена у тебя) я ещё не сделал, я пользуюсь телнетом :-/. Как скачивать файл с сервака я, не знаю. Надеюсь, что мне ответят.
← →
BorH (2003-08-23 04:16) [11]Упс. Похоже я перебрал...
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.012 c