Remote Control API или как запустить?

Куда мне обратиться, если по каким-либо изменениям я хочу разработать свой собственный инструмент удаленной помощи / совместного использования экрана, чтобы включить его в свою CRM?

Я ничего не понимаю в общении, но я хотел бы вовлечь себя в такую ​​идею. У меня вопрос, каковы базовые знания и базовая структура для создания продукта LogMeIn/ CoPilot/ etc?

Я помню, как Джоэл говорил о CoPilot в одном PodCast (несколько лет назад), что он использовал блестящего парня для разработки всего протокола на C++...

есть какие-нибудь идеи о том, как этого добиться, или если меня ждет открытый API?

3 ответа

Решение

См. Эту статью под названием: Как работает VNC, Fog Creek Copilot и другое программное обеспечение для дистанционного управления.

Я приведу здесь некоторые дополнительные подробности из того, что говорится в этом посте, но это более конкретно относится к исходному коду Fog Creek Copilot. Все эти данные были взяты из просмотра исходного кода.

По сути, Copilot не был написан с нуля на C++, а был построен на основе TightVNC под GPL. Да, это означает, что основной источник Copilot также должен быть выдан. Вы можете получить исходный код второго пилота Fog Creek здесь. И, насколько я понимаю, вы могли бы построить свое решение на основе исходного кода этого проекта, если вы сделали его также GPL.

Проект разделен на версию для Mac и версию для Windows. Версия для Mac встроена в цель C, а версия для Windows - в Win32 C++ (не MFC). Для версии Windows есть решение Helper, созданное в VS 2008, и решение Host (хост - человек, которому помогают), созданное в VS 2008. Я думаю, что они не использовали Qt от Trolltech из-за большого размера ссылок, это было важно для них, чтобы сохранить загрузку очень маленькой, так как она должна была изначально загружаться всеми, кто помогает кому-то, и каждый, кто нуждался в помощи каждый раз

Конфигурации x64 и IA64 отсутствуют, поэтому весь код в Windows выполняется только как процесс x86. Он может работать в 64-битных окнах через WOW64, как и любой другой 32-битный процесс.

Как я понимаю, разработка была сделана с Хостом, работающим на ВМ по большей части. Разработка Helper была сделана на их рабочем столе.

Исходный код Copilot использует boost 1.38 и несколько других сторонних библиотек. Эти библиотеки включают STUNT для обхода NAT, MatrixSSL, libntlm (библиотека для проверки подлинности Microsoft NTLM) и omnithread (библиотека потоков и синхронизации).

По большей части он использует сокеты в стиле bsd, но также имеет некоторый сетевой код в boost::asio. Это проблематично, потому что в boost::asio 1.38 есть много ошибок, которые исправлены в boost 1.40. В проекте также есть хук Windows для подключения клавиатуры, мыши и других оконных сообщений на хосте.

Существует проект оболочки, который не похож на оболочку Windows, но в основном содержит 3 двоичных файла: хост, удалитель и перехватывает DLL. Это извлекает это.

То, что они не выдают, это исходный код Reflector и веб-сайта, который, как я понимаю из некоторых постов в блоге на http://projectaardvark.com/, они оба на C#, все остальное на C++. Цель отражателя - помочь в прохождении NAT. Новый блог, который заменяет http://projectaardvark.com/, кстати, называется Air Traffic.

VNC основывается на протоколе удаленного кадрового буфера. Сам протокол RFB не так сложен, если у вас большой опыт работы с протоколами.

Взгляните на программы VNC с открытым исходным кодом. Они позволяют защищенный паролем обмен экранами и просмотр

http://www.realvnc.com/vnc/index.html http://en.wikipedia.org/wiki/Virtual_Network_Computing http://libvncserver.sourceforge.net/

Я надеюсь, что библиотеки VNC и приложения помогут. Они используются в Windows и различных системах Unix.

Вы можете взглянуть на элемент ActiveX Remote Desktop. В этом случае протокол является RPC (хорошо задокументировано). Кроме того, оба уровня связи и удаленного пользовательского интерфейса сделаны для вас, вам просто нужно написать простой код оболочки пользовательского интерфейса.

Другие вопросы по тегам