远程控制API或如何启动?

时间:2009-05-18 18:04:55

标签: api remote-desktop remote-control logmein copilot

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

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

我记得Joel在一个PodCast(几年前)谈过CoPilot,他用一个出色的家伙用C ++开发整个协议......

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

3 个答案:

答案 0 :(得分:5)

请参阅此文章,标题为:How VNC, Fog Creek Copilot and other remote control software works

我将在这里提供一些额外的细节,从博客文章中可以看到,但这更具体到Fog Creek Copilot源代码。所有这些数据都来自查看源代码。

基本上Copilot不是从头开始用C ++编写的,而是基于GPL的TightVNC构建的。是的,这意味着还必须提供Copilot的主要来源。你可以得到Fog Creek copilot source code here。据我了解,只要您将GPL设为GPL,您就可以从该项目的源代码构建解决方案。

该项目分为Mac版和Windows版。 Mac版本是在目标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,用于在主机上挂钩键盘,鼠标和其他窗口消息。

有一个shell项目,它不像windows shell,但基本上包含3个二进制文件:host,deleter和hooks dll。它提取这些。

他们没有给出的是Reflector和网站的源代码,正如我在projectaardvark.com上的一些博客文章中所理解的那样,它们都是C#,C ++中的其他内容。反射器的目的是协助NAT遍历。顺便取代projectaardvark.com的新博客称为Air Traffic

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

答案 1 :(得分:1)

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

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

我希望 VNC 图书馆和应用有用。它们用于Windows和各种Unix系统。

答案 2 :(得分:0)

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