Эффективная программа захвата экрана - PullRequest
0 голосов
/ 04 ноября 2010

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

Моя цель - создать оптимизированный захват, чтобы мне не приходилось передавать весь экран 10 раз в секунду.

У меня была идея сделать снимки экрана на локальном компьютере, а затем определить только ИЗМЕНЕННЫЕ пиксели из последнего снимка экрана. Таким образом, в основном, если они что-то сделали, только то, что изменилось на экране, будет отправлено и восстановлено на другой стороне, поэтому я могу сэкономить пропускную способность и ускорить ее для более медленных интернет-соединений.

Мои вопросы:

  1. Как я могу сравнить новый скриншот со старым и определить, что изменилось.
  2. Как отправить информацию, обнаруженную на шаге 1, по стандартному потоку TCP.
  3. Как мне восстановить эти данные, чтобы экран успешно обновлялся один раз на другой стороне.

1 Ответ

0 голосов
/ 04 ноября 2010

VNC - это программное обеспечение для удаленного рабочего стола с открытым исходным кодом. Я рекомендую вам скачать исходный код и посмотреть, как он работает. Однако я уверен, что это не написано на C #.

Вот ссылка на исходный код TightVNC: http://www.tightvnc.com/download.php

FogCreek недавно использовала источник VNC для своего продукта CoPilot. Вы также можете скачать его источник здесь: https://www.copilot.com/faq/#t28

Надеюсь, что поможет

...