远程控制API或者如何启动?

发布于 2024-07-19 11:01:49 字数 1542 浏览 9 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

染年凉城似染瑾 2024-07-26 11:01:49

请参阅这篇文章,标题为:VNC、Fog Creek Copilot 和其他远程控制软件的工作原理

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

基本上 Copilot 不是用 C++ 从头开始​​编写的,而是基于 GPL 的 TightVNC 构建的。 是的,这意味着副驾驶的主要来源也必须被给出。 您可以此处获取 Fog Creek 副驾驶源代码。 据我了解,只要您也将其设为 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 位 Windows 上运行,就像任何其他 32 位进程可以使用的一样。

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

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

它的大部分使用 bsd 风格的套接字,但在 boost::asio 中也有一些网络代码。 这是有问题的,因为 boost::asio 1.38 有很多错误,这些错误已在 boost 1.40 中修复。 该项目有一个 Windows 挂钩 DLL,用于挂钩主机上的键盘、鼠标和其他 Windows 消息。

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

他们没有给出的是 Reflector 和网站的源代码,据我从 projectaardvark.com,它们都是 C# 语言,其他都是 C++ 语言。 反射器的目的是协助NAT穿越。 顺便说一下,取代 projectaardvark.com 的新博客称为 空中交通

VNC 基于远程帧缓冲区协议。 如果您有丰富的协议经验,RFB 协议本身并不那么困难。

Please see this article entitled: How VNC, Fog Creek Copilot and other remote control software works.

I will provide some additional detail here, from what that blog post says, but that is more specific to the Fog Creek Copilot source code. All of this data was taken from looking at the source code.

Basically Copilot was not written from scratch in C++ but instead it was built off of the GPL'ed TightVNC. Yes this means that Copilot's main source must also be given out. You can get the Fog Creek copilot source code here. And as far as I understand, you could build your solution off of this project's source code as long as you made it GPL as well.

The project is split into a Mac version and a Windows version. The Mac version is built in objective C and the windows version is built in Win32 C++ (not MFC). For the windows version there is a Helper solution made in VS 2008 and a Host solution (the host is the person being helped) made in VS 2008. I think they didn't use Trolltech's Qt because of it's large linking size, it was important to them to keep the download very small since it had to originally be downloaded by everyone helping someone and everyone needing help each time.

There is no x64 nor IA64 configurations, so all of the code on Windows runs only as an x86 process. It can run on a 64bit windows though through WOW64 just as any other 32-bit process can use.

As I understand, development was done with the Host running on a VM for the most part. The development of the Helper was done on their desktop.

The Copilot source code uses boost 1.38, and several other 3rd party libraries. These libraries include STUNT for NAT traversal, MatrixSSL, libntlm (Library for Microsoft's NTLM authentication) and omnithread (threading and synchronisation library).

For the most part it uses bsd style sockets, but it also has some networking code in boost::asio. This is problematic because boost::asio 1.38 has a lot of bugs in it that are fixed in boost 1.40. The project has a windows hook dll as well to hook keyboard, mouse and other windows messages on the host.

There is a shell project which is not like the windows shell but that basically contains 3 binaries: the host, deleter and hooks dll. It extracts these.

What they don't give out is the source code for the Reflector and website, which as I understand from some blog posts on projectaardvark.com, they are both in C#, Everything else in C++. The purpose of the reflector is to assist in NAT traversal. The new blog which replaces projectaardvark.com by the way is called Air Traffic.

VNC is bassed off of the remote framebuffer protocol. The RFB protocol itself isn't that difficult if you have a lot of protocol experience.

蓝海似她心 2024-07-26 11:01:49

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

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

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

Have a look at the open source VNC programs. They allow password-protected screensharing and viewing

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

I hope VNC libraries and apps help. They are used on Windows and various Unix systems.

智商已欠费 2024-07-26 11:01:49

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

You could take a look at the Remote Desktop activeX control. In that case the protocol is RPC (well documented). Additionally both the communications and remote UI layers are done for you, you just have to write some simple UI shell code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文