Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизКак сделать скриншот с компьютера в локальной сети? Найти похожие ветки
← →
[BAD]Angel (2002-10-10 14:58) [0]Как сделать скриншот с компьютера в локальной сети?
Если можно, куском кода!!!
← →
[BAD]Angel (2002-10-10 15:05) [1]Помогите ПЛЗ!!!
← →
Song (2002-10-10 15:10) [2]1.Клиент-сервер.
2.OpenWindowStation(), OpenDeskTop()
← →
AL2002 (2002-10-10 15:19) [3]>Song © (10.10.02 15:10)
А пример. Очень интересно.
← →
[BAD]Angel (2002-10-13 02:16) [4]А по точнее можно?
← →
bobby (2002-10-13 08:54) [5]Делаешь 2 приложения, на одном вешаешь TClientSocket, на другом Tserversocket, у них в свойствах задаешь порт, по которому передача, и у клиента айпишник сервера. Далее делаешь клиент.коннект, в проге-клиенте пишешь код сдирания десктопа, и методом клиент.сендбуфер, вроде отправляешь этот десктоп серверу.
Нужен исходик-пиши на мыло.
← →
Rouse_ (2002-10-16 00:08) [6]Ложишь на форму TClientSocket и TServerSocket, у клиента Active ставишь False, пишешь в обработчиках следующий код
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendText("send"+IntToStr(TrackBar1.Position));
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
FJpeg:TJpegImage;
Play :Boolean;
s, sl: string;
i:Integer;
begin
s:= Socket.ReceiveText;
if not Reciving then
begin
SetLength(sl, StrLen(PChar(s))+1);
StrLCopy(@sl[1], PChar(s), Length(sl)-1);
DataSize:= StrToInt(sl);
Data:= TMemoryStream.Create;
Delete(s, 1, Length(sl));
Reciving:= true;
end;
try
Data.Write(s[1], length(s));
if Data.Size = DataSize then
begin
Data.Position:= 0;
fjpeg:=TJpegImage.Create;
fjpeg.LoadFromStream(Data);
Image1.Picture.Assign(fjpeg);
fjpeg.Free;
Data.Free;
Reciving:= false;
Socket.Close;
except
Data.Free;
end;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
ms: TMemoryStream;
winHWND: HWND;
winDC: HDC;
Rect: TRect;
fBitmap:TBitmap;
FJpeg:TJpegImage;
Compression:Byte;
tmp:String;
begin
_Sending := True;
Compression := 50;
tmp:= Socket.ReceiveText;
if tmp = "send" then
begin
ms:= TMemoryStream.Create;
try
winHWND := GetDesktopWindow();
winDC := GetDC(winHWND);
fBitmap:=TBitmap.Create;
GetWindowRect(winHWND, rect);
fBitmap.width := rect.right-rect.left;
fBitmap.height := rect.bottom-rect.top;
BitBlt(fBitmap.canvas.handle, 0, 0, fBitmap.width,
fBitmap.height, winDC, 0, 0, SRCCOPY);
Application.ProcessMessages;
ReleaseDC(winHWND, winDC);
FJpeg:=TJpegImage.Create;
FJpeg.Assign(FBitmap);
fBitmap.Free;
FJpeg.CompressionQuality := Compression;
FJpeg.SaveToStream(ms);
fJpeg.Free;
ms.Position:= 0;
Socket.SendText(IntToStr(ms.Size) + #0);
Socket.SendStream(ms);
except
try
if Assigned(fBitmap) then fBitmap.Free;
if Assigned(fJpeg) then fJpeg.Free;
if Assigned(ms) then ms.Free;
except end;
end;
end;
end;
Проверь, я вырезал лишнее, мог что-то пропустить, но принцип такой
Желаю успехов
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c