代码之家  ›  专栏  ›  技术社区  ›  balexandre

远程控制API或如何启动?

  •  2
  • balexandre  · 技术社区  · 15 年前

    如果由于任何变化,我想开发自己的远程协助/屏幕共享工具,将其包含在我自己的CRM中,我应该去哪里?

    我对交流一无所知,但我想把自己卷入这样的想法中。我的问题是,创建一个 LogMeIn / CoPilot ETC产品?

    我记得乔尔在一个播客(几年前)谈到过副驾驶时,他用一个聪明的家伙来开发C++中的整个协议…

    关于如何完成这一点,或者是否有一个开放的API在等我?

    3 回复  |  直到 14 年前
        1
  •  5
  •   Brian R. Bondy    15 年前

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

    我将在这里提供一些额外的细节,从博客上说,但这是更具体的雾溪副驾驶源代码。所有这些数据都是从源代码中获取的。

    基本上,副驾驶不是在C++中从头开始写的,而是由GPL'EntEntVNC构建的。是的,这意味着副驾驶的主要来源也必须给出。你可以得到 Fog Creek copilot source code here . 据我所知,你可以用这个项目的源代码构建你的解决方案,只要你做了GPL。

    该项目分为Mac版本和Windows版本。MAC版本是在目标C中构建的,Windows版本是在Win32 C++(不是MFC)中构建的。对于Windows版本,有一个在VS 2008中制作的帮助解决方案和一个在VS 2008中制作的主机解决方案(主机是被帮助的人)。我认为他们没有使用Trolltech的qt,因为它的链接大小很大,所以保持下载非常小对他们很重要,因为最初必须由每个人帮助某人和每个人每次都需要帮助下载。

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

    据我所知,开发主要是在虚拟机上运行的主机上完成的。助手的开发是在他们的桌面上完成的。

    copilot源代码使用boost 1.38和其他几个第三方库。这些库包括stunt for nat traversal、matrixssl、libntlm(用于Microsoft的NTLM身份验证的库)和omnithread(线程和同步库)。

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

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

    他们没有给出的是反射器和网站的源代码,正如我在上的一些博客文章中所了解的那样。 projectaardvark.com 它们都是C语言,其他都是C++语言。反射镜的作用是协助NAT遍历。替换的新博客 项目aardvark.com 顺便问一下 Air Traffic .

    VNC是从远程帧缓冲协议中分离出来的。如果您有大量的协议经验,那么RFB协议本身就没有那么困难了。

        2
  •  1
  •   Aiden Bell    15 年前

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

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

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

        3
  •  0
  •   Sam Axe    15 年前

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

    推荐文章