4

如果有任何机会,我想开发自己的远程协助/屏幕共享工具以包含在我自己的 CRM 中,我应该去哪里?

我对沟通一无所知,但我想参与这样的想法。我的问题是,创建LogMeIn / CoPilot /etc产品的基本知识和基本结构是什么?

我记得乔尔(几年前)在一次 PodCast 中谈到了 CoPilot,他使用了一位才华横溢的伙伴用 C++ 开发了整个协议......

关于如何实现这一点的任何想法,或者是否有一个开放的 API 等着我?

4

3 回答 3

7

请看这篇文章:VNC、Fog Creek Copilot 等远程控制软件的工作原理

我将根据该博客文章的内容在此处提供一些额外的详细信息,但这更具体到 Fog Creek Copilot 源代码。所有这些数据都是通过查看源代码获得的。

基本上,Copilot 不是用 C++ 从头开始​​编写的,而是基于 GPL 的 TightVNC 构建的。是的,这意味着 Copilot 的主要来源也必须提供。您可以在此处获取 Fog Creek copilot 源代码。据我了解,只要您也将其设为 GPL,您就可以从该项目的源代码中构建您的解决方案。

该项目分为 Mac 版本和 Windows 版本。Mac 版本内置于 Objective C,windows 版本内置于 Win32 C++(不是 MFC)。对于 Windows 版本,VS 2008 提供了一个 Helper 解决方案,VS 2008 提供了一个 Host 解决方案(主机是被帮助的人)。我认为他们没有使用 Trolltech 的 Qt,因为它的链接大小很大,这很重要给他们以保持下载量非常小,因为它最初必须由每个帮助某人和每个需要帮助的人下载。

没有 x64 或 IA64 配置,因此 Windows 上的所有代码仅作为 x86 进程运行。它可以通过 WOW64 在 64 位窗口上运行,就像任何其他 32 位进程可以使用一样。

据我了解,大部分情况下,开发是通过在 VM 上运行的主机完成的。Helper 的开发是在他们的桌面上完成的。

Copilot 源代码使用 boost 1.38 和其他几个第三方库。这些库包括用于 NAT 遍历的 STUNT、MatrixSSL、libntlm(用于 Microsoft 的 NTLM 身份验证的库)和omnithread(线程和同步库)。

大多数情况下,它使用 bsd 样式的套接字,但在 boost::asio 中也有一些网络代码。这是有问题的,因为 boost::asio 1.38 中有很多在 boost 1.40 中修复的错误。该项目还有一个windows hook dll,用于在主机上挂钩键盘、鼠标和其他windows消息。

有一个与 windows shell 不同的 shell 项目,但它基本上包含 3 个二进制文件:主机、删除程序和钩子 dll。它提取这些。

他们没有给出的是反射器和网站的源代码,据我从projectaardvark.com上的一些博客文章中了解到,它们都是 C#,其他一切都是 C++。反射器的目的是协助 NAT 穿越。顺便说一下,取代projectaardvark.com的新博客名为Air Traffic

VNC 基于远程帧缓冲协议。如果您有很多协议经验,RFB 协议本身并不难。

于 2009-09-22T11:24:54.413 回答
1

看看开源 VNC 程序。它们允许受密码保护的屏幕共享和查看

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

我希望VNC库和应用程序有所帮​​助。它们用于 Windows 和各种 Unix 系统。

于 2009-05-18T18:26:15.503 回答
0

您可以查看远程桌面 activeX 控件。在这种情况下,协议是 RPC(有据可查)。此外,通信和远程 UI 层都已为您完成,您只需编写一些简单的 UI shell 代码。

于 2009-05-18T18:09:14.133 回答