Технологии, используемые в приложениях удаленного администрирования (не RD) - PullRequest
3 голосов
/ 26 апреля 2010

Я хочу знать, какие технологии используются в настоящее время в качестве базового механизма захвата экрана для программного обеспечения удаленного администрирования, такого как

  • VNC
  • PcAnywhere
  • 1008 * TeamViewer *
  • RAC Remote
  • Администратор
  • и т.д ..

Язык программирования не так важен, чтобы просто знать, нужно ли разрабатывать драйвер, который опрашивает видеопамять 30 раз в секунду, или в ядре Windows встроены какие-либо com-объекты, помогающие это сделать? Я не заинтересован в сторонних компонентах для этого. Нужно ли использовать возможности DirectX? Просто хочу начать с разработки собственного движка захвата потокового экрана, который будет меньше загружать процессор.

Ответы [ 3 ]

3 голосов
/ 29 апреля 2010

Когда речь идет о VNC, есть несколько инструментов с открытым исходным кодом, совместимых с VNC, например, TightVNC и я думаю, что UltraVNC, так что вы можете просто загрузить код и посмотреть.

Вот ссылка для скачивания источника TightVNC:
http://www.tightvnc.com/download/1.3.10/tightvnc-1.3.10_winsrc.tar.bz2

1 голос
/ 04 мая 2010

DirectShow Filters, кажется, самый популярный способ сделать это. Смотрите этот ответ , используя Windows Media Encoder для записи экрана . Там есть несколько хороших ссылок.

Windows Media Encoder SDK также является опцией, но требует от пользователя, чтобы она была установлена ​​и настроена правильно. Поиск Bing или Google для "Windows Media Encoder SDK" и "Screen Capture" , вы должны увидеть довольно много сообщений на форуме.

Для метода с большим количеством снимков экрана , статью о том, как это сделать, включая различные методы и источник, можно найти по адресу http://gpalem.web.officelive.com/screencap.html.

Справка UltraVNC немного рассказывает об их Зеркальном видеодрайвере на http://www.uvnc.com/onlinehelp/8.html. Это очень мало деталей, но дает подсказку о том, как они это делают.

Я верю, что ваш протокол сильно повлияет на ваш захват. Вам нужен весь экран? Дельты? и т. д. Список основных протоколов коммерческих и открытых программ можно найти на .... http://en.wikipedia.org/wiki/Remote_desktop_software

А исчерпывающий список программ, включая их протоколы и функции, можно найти по адресу ... http://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software

Как сказал, вы можете проверить, как это сделали другие. В зависимости от лицензии приложения, конечно. Вторая ссылка на Википедию содержит более 15 программ с открытым исходным кодом, использующих различные методы захвата / передачи экрана и протоколы.

1 голос
/ 04 мая 2010

PcAnywhere и RDP используют пользовательские протоколы, которые пытаются передать как можно меньше данных - передавая, например, свойства окна и управления (а не изображение окна) и позволяя клиенту визуализировать окно. Из-за этого очень сильно ориентирован на Windows (и не всегда отображает точно того, что на экране). Они также предлагают больше безопасности.

VNC, с другой стороны, будучи гораздо более общим, просто передает растровые изображения (или png, jpeg или некоторую другую кодировку) экрана. Чтобы избежать передачи изображения всего экрана 30 раз в секунду, он отправляет только те области, которые изменились с момента последнего обновления.

...