Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Рабочий стол
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.09.2009, 12:50
Аватар для W1ndow
W1ndow W1ndow вне форума
Новичок
 
Регистрация: 15.09.2009
Адрес: Березники
Сообщения: 61
Репутация: 16
По умолчанию Удалённый рабочий стол

Всем кто зашёл сюда привет! Тут я столкнулся с проблемой мне надо делать курсовик, а там надо видеть что происходит на мониторе другого компьютера в сети. Я подумал и решил предложить делать скрины того монитора и отправлять на управляющий, но так мне препод сказал не потянет. Как он мне сказал, можно как-то через сеть подключится к видюхе и видюха будет мне показывать тоже самое что показывает на компе из сети. Если кто-то знат как это сделать плиз поделитесь знаниями, или есть какой-то другой способ на делфи но не черз скриншоты то тоже поделитесь. буду вам очень признателен
  #2  
Старый 15.09.2009, 13:20
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,534
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от W1ndow
Всем кто зашёл сюда привет! Тут я столкнулся с проблемой мне надо делать курсовик, а там надо видеть что происходит на мониторе другого компьютера в сети. Я подумал и решил предложить делать скрины того монитора и отправлять на управляющий, но так мне препод сказал не потянет. Как он мне сказал, можно как-то через сеть подключится к видюхе и видюха будет мне показывать тоже самое что показывает на компе из сети. Если кто-то знат как это сделать плиз поделитесь знаниями, или есть какой-то другой способ на делфи но не черз скриншоты то тоже поделитесь. буду вам очень признателен
Может этот вариант для каких-то специальных видеокарт?
Стандартный способ - это действительно грубо говоря скриншоты по сети.
  #3  
Старый 15.09.2009, 13:45
Kot-Dc Kot-Dc вне форума
Прохожий
 
Регистрация: 10.05.2009
Адрес: За компом
Сообщения: 19
Репутация: 10
По умолчанию

У тя препод не в фбр работает?=)
  #4  
Старый 15.09.2009, 14:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,057
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вроде, можно попросить винду передавать измененные регионы своему приложению и уже их отсылать по сети. Как - не знаю, просто слышал об этом.
  #5  
Старый 15.09.2009, 19:54
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Цитата:
Сообщение от lmikle
Вроде, можно попросить винду передавать измененные регионы своему приложению и уже их отсылать по сети. Как - не знаю, просто слышал об этом.
Мне кажется, вы имеете в виду технологию Mirror Driver
http://msdn.microsoft.com/en-us/library/ms797878.aspx
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
  #6  
Старый 16.09.2009, 17:30
newbas newbas вне форума
Прохожий
 
Регистрация: 04.08.2009
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Как он мне сказал, можно как-то через сеть подключится к видюхе и видюха будет мне показывать тоже самое что показывает на компе из сети.
Препод двой ерунду сказал. Я уверен, что не бывает видеокарт с сетевой картой.
Снять инфу с экрана удаленного компа можно только через скрины, получаемые с требуемой частотой обновления.
Упрощая это выглядит так:
Требуется 2 приложения:
1) Сервер (стоит на удаленном компе как фоновое приложение или служба)
2) клиент - там, где будешь смотреть.
По коннекту клиента, сервер делает скриншот экрана и ставит ловушку на изменение экрана, как например в http://ldmunivanga-38.narod.ru/Codin...html#WSAF00370
По событию ловушки делается новый скрин, сжимается и передается клиенту.
  #7  
Старый 16.09.2009, 18:55
Аватар для W1ndow
W1ndow W1ndow вне форума
Новичок
 
Регистрация: 15.09.2009
Адрес: Березники
Сообщения: 61
Репутация: 16
По умолчанию

Цитата:
Сообщение от newbas
Препод двой ерунду сказал. Я уверен, что не бывает видеокарт с сетевой картой.
Снять инфу с экрана удаленного компа можно только через скрины, получаемые с требуемой частотой обновления.
Упрощая это выглядит так:
Требуется 2 приложения:
1) Сервер (стоит на удаленном компе как фоновое приложение или служба)
2) клиент - там, где будешь смотреть.
По коннекту клиента, сервер делает скриншот экрана и ставит ловушку на изменение экрана, как например в http://ldmunivanga-38.narod.ru/Codin...html#WSAF00370
По событию ловушки делается новый скрин, сжимается и передается клиенту.

Нет, препод по программированию врать не будет
Да не он не имел ввиду что у видюхи есть сетевой выход как ты видимо подумал. Просто из сети идёт перехват того что высвечивается на мониторе и отправляется на другой ПК. Допустим так же прога RAdmin там ведь не скриншотами идёт передача.
  #8  
Старый 16.09.2009, 19:28
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

Скорее всего имелось ввиду pcihook. Думаю, с твоими знаниями, ты реализовать не сможешь. Так что юзай стандартные вещи: захват экрана и отправка по сети. Если хочешь нормально реализовать, заказывай за деньги в соответствующей ветке.
  #9  
Старый 24.09.2009, 09:23
Аватар для SHKIP3R
SHKIP3R SHKIP3R вне форума
Новичок
 
Регистрация: 24.04.2007
Адрес: Челябинск
Сообщения: 69
Репутация: -1631
По умолчанию

Цитата:
Сообщение от Rokuell
Мне кажется, вы имеете в виду технологию Mirror Driver
http://msdn.microsoft.com/en-us/library/ms797878.aspx

Если вдруг будете поднимать тему по Mirror Driver, с радостью помог бы разобраться... На этом форуме ранее я пытался поднять эту тему, но видимо разбирающихся - 0, да и всезнающий яндекс, так толком мне не смог помочь... Скриншоты передавать не тема... слишком маленький FPS (((

Последний раз редактировалось SHKIP3R, 24.09.2009 в 09:25.
  #10  
Старый 24.09.2009, 18:52
newbas newbas вне форума
Прохожий
 
Регистрация: 04.08.2009
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Скриншоты передавать не тема... слишком маленький FPS (((
А что можно еще передавать, кроме screenshots? Видеокарта преобразует данные из видеопамяти в изображение, данные в видеопамять пишет драйвер, а драйвер передает данные GUI, а в GUI пишут при помощи winapi (не берем OpenGL и DirectX) - так что передавать можно будет только скриншот. НО передавать весь скриншот нужно только в первый раз, а далее вешается хук на изменение экрана и отлавливаются области, которые перерисовываются.
Кроме того, никто не запрещал использовать сжатие пакета.
ЗЫ: Тот же радмин или тимвьювер работают на скринах, попробуйте в локалке посмотреть анимированные картинки или flash (например зайти на сайт, где есть реклама), FPS будет просто пипец, а что бы отбросить все сомнения, еще и на нагрузку сети.
  #11  
Старый 24.09.2009, 20:29
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Думаю, что не все так просто с передачей картинки. Взять например картинку с 1920х1200. Без существенной потери качества и скоростью 24 кадра в сек у нас эта передача скушает примерно 6 Мб трафика в секунду, а для 100Мбит это больше 50% ресурса. Допустим, как вы говорите мы будем отлавливать только изменения по сравнению с эталонным битмапом, у вас все равно будет приличный трафик (часы обновляются, мышь двигается, пара приложений каких-нибудь добавляют еще изменений) и это в принципе статичное состояние экрана, но так-ведь редко бывает.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
  #12  
Старый 25.09.2009, 13:27
newbas newbas вне форума
Прохожий
 
Регистрация: 04.08.2009
Сообщения: 11
Репутация: 10
По умолчанию

1. зачем ее передавать 24 раза в сек, когда достаточно 10-15 раз в сек.
2. BMP формат жмется в 14 раз.
3. И пускай будет потеря качества (например jpg) - надо лучше - смотрите в реальный монитор, а не в удаленный
ЗЫ: Посмотрите готовые аналоги - там есть все: тормоза, потеря качества, нагрузка на сеть и т.д.

Последний раз редактировалось newbas, 25.09.2009 в 13:40.
  #13  
Старый 25.09.2009, 18:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Я в курсе про готовые аналоги. Взять скажем RemoteAdmin или DameWare. Можно на кол-ве цветов, сжатии поиграть. Да, несколько быстрее становится, но такой комфортности, как в Терминал-клиенте там нет.
А при расчете 6 Мб я как раз использовал Jpg с качеством 80% от оригинала. Ниже 23-24 кадров вы сразу почуствуете запаздывание.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
  #14  
Старый 27.09.2009, 11:45
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

А пример реализации кода можно посмотреть в исходниках свободных программ, например, TightVNC. Такие программы обычно пишутся на С++ или Java, но можно найти и на Delphi
Кстати, при изменении небольшого количества пикселей (перемещение мыши и т.п.) задержка не ощутима даже при передаче изменений в raw (несжатом) формате. При больших изменениях частота кадров очень сильно падает (в любой проге). Например, при обновлении всего экрана 1280х1024 в tight кодировании с 16-битной цветностью и при передаче от сервера к клиенту в 3 Мбит/с частота кадров равна 2-3.
Но частота кадров-далеко не главное. Мы ведь не кино смотреть собираемся
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
  #15  
Старый 28.09.2009, 15:57
Аватар для SHKIP3R
SHKIP3R SHKIP3R вне форума
Новичок
 
Регистрация: 24.04.2007
Адрес: Челябинск
Сообщения: 69
Репутация: -1631
По умолчанию

Я думаю в этом ни для кого нет секрета... по поводу BMP, это как-то очень грубо получается... JPG - сильное искажение, а вот PNG, это золотая середина... потерь нет, если картинка сложная (красивые обои на рабочем столе), весом он будет чуть поболее jpg, а вот если снимать скриншот с обычных окон, то png лучше жмется...
Если щелкать обычные скриншоты, а потом сравнивать картинки на совпадение, программка будет жрать немерено ресурсов, а их еще и отправить надо... Самый оптимальный вариант - брать скриншоты напрямую из памяти видеокарточки и обрабатывать их не сохраняя на винт...
Закрытая тема


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter