Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 23:09   #1
olchick
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 13
По умолчанию передача скриншота

Здраствуйте, уважаемые форумчани.

Написала программульку которая делает на удаленной машине скриншот и передает его на мой. Но есть две проблемы:

1. При отображении изображения в image32 происходит какаето ерунда - такое ощущение, что по сети передается не одно изображение, а целая куча, причем с каждым разом все меньше и меньше их параметры(ширина и высота). В итоге в image32 сразу видно несколько, отличных по размеру, копий изображения.

2. Вторая проблема заключается в том, что не могу передать копию удаленного экрана во всем размере ,хотя и кодирую его в jpg. Приходиться передавать уменьшенную копию, к примеру 500 на 500. Можно и побольше, но качество надо уменьшить. Если передаю во весь размер Delphi выдает ошибку - переполнения буфера.

В работе использую компоненты indy для работы с udp.
Помогите разобраться...

Может быть непонятно объяснила проблемы - поэтому прикрепляю два файла. Когда протестируете все увидите сами...

Заранее спасибо...
Вложения
Тип файла: rar client.rar (260.7 Кб, 25 просмотров)
Тип файла: rar server.rar (214.1 Кб, 20 просмотров)
olchick вне форума Ответить с цитированием
Старый 02.06.2009, 23:30   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Так и будут люди запускать неизвестные exe от человека, во первых который создал только 1 тему. Тему в которой прикрепил только exe!!!
Во вторых если и понадобилась помощь с программой, то можно и было исходники или блок схему показать!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!

З.Ы и вообще на троян похоже (BackDoor).

Последний раз редактировалось uberchel; 02.06.2009 в 23:44.
uberchel вне форума Ответить с цитированием
Старый 02.06.2009, 23:48   #3
olchick
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 13
По умолчанию Вот исходный код:

Sorry.
Выкладываю исходники:

Если захотите заново откомпилировать, то перед этим прийдется скачать и установить
Полный дистрибутив SXSkinComponents
Вложения
Тип файла: rar Client.rar (525.6 Кб, 25 просмотров)
Тип файла: rar Server.rar (223.0 Кб, 27 просмотров)

Последний раз редактировалось olchick; 03.06.2009 в 00:09.
olchick вне форума Ответить с цитированием
Старый 03.06.2009, 00:07   #4
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Сначала надо одну команду, а потом уж грузить в image
Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
  begin try
   MemoryStream:= TMemoryStream.Create;
   MemoryStream.CopyFrom(AData, AData.Size);
   MemoryStream.SaveToFile('C:\logo.jpg');
   Finally
   MemoryStream.Free;
   end;
   if form3.Showing
   then
      begin
        form3.Image321.Bitmap.LoadFromFile('C:\logo.jpg');
        ClientSocket1.Socket.SendText('screen');
  end;
end;
uberchel вне форума Ответить с цитированием
Старый 03.06.2009, 00:11   #5
san72
Форумчанин
 
Регистрация: 04.06.2008
Сообщений: 102
По умолчанию

вообще UDP не настолько качественнен для передачи картинок или файлов, максимум что по нему можно безболезненно передать это текст какой-то, тоесть лучше использовать TCP/IP, тогда весь поток придёт в 100% сохранности.. но я могу ошибаться
Keep it simple, stupid
san72 вне форума Ответить с цитированием
Старый 03.06.2009, 00:14   #6
olchick
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 13
Подмигивание

Цитата:
Сообщение от uberchel Посмотреть сообщение
Сначала надо одну команду, а потом уж грузить в image
Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
  begin try
   MemoryStream:= TMemoryStream.Create;
   MemoryStream.CopyFrom(AData, AData.Size);
   MemoryStream.SaveToFile('C:\logo.jpg');
   Finally
   MemoryStream.Free;
   end;
   if form3.Showing
   then
      begin
        form3.Image321.Bitmap.LoadFromFile('C:\logo.jpg');
        ClientSocket1.Socket.SendText('screen');
  end;
end;


Не помагает - результат такой же.
olchick вне форума Ответить с цитированием
Старый 03.06.2009, 00:16   #7
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Дай исходник клиента полный, ато нет формы в том, что дал в начале!
тогда и полегче будет разобратся!

только server!
uberchel вне форума Ответить с цитированием
Старый 03.06.2009, 00:30   #8
olchick
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от uberchel Посмотреть сообщение
Дай исходник клиента полный, ато нет формы в том, что дал в начале!
тогда и полегче будет разобратся!

только server!
Сервер, как раз весь, а клиент - действительно нет файла формы

Вот полный исходник клиента
Вложения
Тип файла: rar Client.rar (533.2 Кб, 30 просмотров)
olchick вне форума Ответить с цитированием
Старый 03.06.2009, 16:11   #9
ikot
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 56
По умолчанию

такая проблема не только у вас, она встречается и у готовых уже продуктах, например Remote desctop Control

Последний раз редактировалось ikot; 03.06.2009 в 16:14.
ikot вне форума Ответить с цитированием
Старый 03.06.2009, 19:37   #10
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Подправил Ваши исходники. Теперь всё работает. Screen.rar
Немного добавлю. Посмотрите внимательно на порты и адреса сервера и клиента, чтобы данные шли куда нужно. Так же у Вас много лишнего кода. Я не стал там всё раскапывать, а просто подправил Ваш код, чтобы скриншот принимался и грузился в Image.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для скриншота pix_l Общие вопросы Delphi 4 30.03.2009 15:56
Как улучшить качество скриншота Arkuz Мультимедиа в Delphi 6 10.03.2009 18:52
Создание скриншота в файл XPAiN Microsoft Office Excel 6 11.11.2008 12:05
Снятие скриншота в МСДОС Black_Ak24 Свободное общение 4 17.06.2008 19:03
Передача скриншота Terran Работа с сетью в Delphi 1 17.12.2007 21:41