Технологии, используемые в приложениях удаленного администрирования (не для удаленных рабочих столов)

StackOverflow https://stackoverflow.com/questions/2710728

Вопрос

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

  • VNC
  • pcAnywhere
  • TeamViewer ( Просмотр команды)
  • Пульт дистанционного управления RAC
  • Администратор
  • и т.д..

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

Это было полезно?

Решение

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

Вот ссылка для загрузки исходного кода TightVNC:
http://www.tightvnc.com/download/1.3.10/tightvnc-1.3.10_winsrc.tar.bz2

Другие советы

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

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

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

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

Для делаю много скриншотов метод, статью о том, как это сделать, включая различные методы и источник, можно найти по адресу 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 программ с открытым исходным кодом, использующих различные методы захвата / передачи экрана и протоколы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top