使用 Python 的 P2P RDP

2024-01-08

我想用 Python 编写一个简单的 P2P RDP 客户端和服务器。 这就是我绘制草图的方式。

  1. 短时间截屏
  2. 压缩它们并发送到服务器应用程序
  3. 从服务器应用程序获取键盘、鼠标事件。将它们序列化并发送给客户端。客户端将反序列化它们并使用 SendInput 调用来反映它们

我需要知道的是

  1. Python 中是否存在 rdp 库可以用来简化我的工作?
  2. 如何使用 Python 从服务器操作员获取键盘或鼠标事件?
  3. 事件序列化的最简单的方法是什么?
  4. 如何测量 Mouseevent 的相对 X,Y 坐标?
  5. 您能提供任何易于理解的示例吗?
  6. 我听说的最后一个问题是,如果两个平台都使用 Microsoft 衍生操作系统,那么在 .net 中执行此操作会更容易。是真的吗?

我的客户端应用程序将在 Windows XP、Vista、7 上运行,服务器应用程序将在 Windows/Linux 上运行 如果我遗漏了什么,也请提及。


前段时间我写了一个叫做easyrfb https://hydra.geht.net/easyrfb/这也是基于python-vnc-查看器 https://python-vnc-viewer.googlecode.com/hg/,但我从未发表过。它并没有完全涵盖您所要求的内容,但非常相似。希望它可能有所帮助,现在可以在以下位置找到其中的部分内容http://Hydra.geht.net/easyrfb/ http://hydra.geht.net/easyrfb/

请注意,那里的文件并不总是处于工作状态,因为这些文件直接链接到我的工作副本。但我不经常编辑。

现在它也可以在 GitHub 上找到:https://github.com/hilbix/pyrfb/tree/easyrfb https://github.com/hilbix/pyrfb/tree/easyrfb

这就是它在我身边所做的事情:

  • 连接到本地运行的 Xvnc(技术上任何 VNC 服务器都可以)
  • 不断将当前屏幕内容写入高度压缩的test.jpg
  • 某些网页使用 AJAX 抓取该信息并更新图像
  • 该图像上的鼠标点击将作为鼠标点击转发到 VNC 服务器
  • 可以使用表单模拟键盘输入
  • 并且可以拍摄无损 PNG 屏幕截图
  • 有一个edit.html可以根据PNG截图进行模糊匹配(称为模板)
  • Shell 脚本可以检查此类模板是否匹配或等待它们匹配。

内部通信是使用 TCP、Unix-Sockets 和一些文件完成的,因此更改它并不困难,每个组件都在不同的位置运行:

  • VNC 服务器(显示的屏幕)
  • rfbimg.py(它执行 VNC -> 图像并提供控制.sock)
  • shell 脚本(如果需要,使用sendsock.py交谈.sock)
  • 网络服务(AJAX, and GET图像)与存根(将命令转发到.sock)
  • 控制网络客户端(任何浏览器,甚至lynx or telnet can do)

请不要向我索要文档!使用来源,卢克!

心理健康警告!完整的图片是一大堆丑陋的、不干净的、令人头疼的、捂脸的东西,创建了一些几乎不相关的随机放置的复杂脚本,这些脚本具有错误和误导性的名称、不干净的副本、未注释和未完成的半编辑,所有东西都硬编码到一台机器上,可能需要对未升级的软件包甚至旧的东西进行一些未记录的本地 10 年旧调整。所以我不会交出所有的东西。 (即使这听起来很熟悉,但不,我不是在微软工作。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 的 P2P RDP 的相关文章

随机推荐

  • 是否保证C中的数组元素将连续存储,没有填充?

    换句话说 如果我有一个以这种方式分配的数组 是否可以保证 void arr calloc nmemb sizeof some type Then elta eltb eltc都将指向内存中的同一位置 这将是 type 的第二个元素some
  • 如何消除 Spotfire 箱形图中的异常值

    提前感谢您的帮助 问候 拉杰 将值添加到MAX 即使可能 值也会扭曲数据 不过 有两种技巧可以做到这一点 右键单击 gt 属性 gt Y 轴 gt 设置MIN范围值和MAX将值范围设置为可以消除所有异常值的值 这实际上只适用于所有值都彼此接
  • 根据先前的值对 numpy 代码进行向量化操作

    以下代码模拟了一个可以随时采样 3 个不同状态的系统 这些状态之间的恒定转移概率由矩阵给出prob nor 因此 中的每个点trace取决于之前的状态 n states n frames 3 1000 state val np linspa
  • 如何正确使用 Meteor.connect() 与另一个 Meteor 服务器连接

    我的新客户端代码位于 client main coffee Xingyun Meteor connect localhost 3000 System new Meteor Collection system Xingyun Meteor s
  • Java等待函数

    我想知道你们是否可以帮助我 我正在尝试使用 Java 内置的图形模块制作一个动画程序 事实是 Java 立即执行所有操作 不同的动画之间没有任何时间 最终产品只是最后一张图片 我需要一个在每张图片之间放置半秒的功能 任何帮助表示赞赏 规格
  • 将 XML 部分反序列化为对象

    我有一些 XML 我将其反序列化为业务对象 我正在使用 XmlSerializer Deserialize 来执行此操作 但是 我希望 XML 中包含的 XmlElement 之一保留为 XElement 由于 XElement 不可序列化
  • Cocoa:用 X 关闭后以编程方式显示主窗口

    我想在用户使用 X 按钮关闭 Cocoa 应用程序的主窗口后以编程方式重新打开它 我知道它仍在记忆中的某个地方 但我不知道在哪里 如果您使用默认的 Cocoa 应用程序模板 您的应用程序委托将引用 MainMenu xib 中的窗口 您只需
  • 来自csv文件python的字典

    我已经阅读了一个 cvs 文件 我想根据该文件上的信息创建一个字典 我尝试使用 csv DictReader 类来实现该建议 但它没有给我想要的结果 现在我正在读取这样的文件 size reader csv reader f dialect
  • 在 ASP.NET 中处理长时间运行的进程的常见方法

    我们有一个长时间运行的数据传输过程 它只是一个被调用和运行的 asp net 页面 最多可能需要几个小时才能完成 它似乎工作得很好 但我只是想知道有哪些更流行的方法来处理这样的漫长过程 您是否创建应用程序并通过 Windows 调度程序 W
  • 在自定义位置设置 .git 文件夹

    这是我当前的目录结构 mygit code git morecode mycode The code文件夹由git监控 git的文件在通常的情况下代码 git 我只处理这段代码的一部分 即mycode 我想使用 git 来管理我的代码 但我
  • Django 小部件覆盖模板

    我是 django 的新人 我想创建一个自定义小部件 形式 py from project widgets import MultiChoiceFilterWidget class CustomSearchForm FacetedSearc
  • 如何在 Django 模板标签内将字符串连接到数字

    我找到了一个StackOverflow 上有类似问题 https stackoverflow com questions 4386168 how to concatenate strings in django templates 但该解决
  • PHP7 中 foreach 的变化

    foreach在 PHP7 中 默认情况下 当按值迭代时 根据以下方式对数组的副本进行操作 http php net manual en migration70 inknown php http php net manual en migr
  • Django python-rq -- DatabaseError SSL错误:解密失败或坏记录mac

    我正在使用 django redis 和 django rq 框架来支持 Heroku 上的 Django 应用程序的 redis 缓存和 redis 后台任务处理 过去工作顺利 但现在我不断收到DatabaseError SSL erro
  • 添加 #pragma make_public(Type) 未消除 C3767 错误

    我有一个 Assembly A 它定义了一个托管类 该类具有一个采用两种本机类型的公共构造函数 我可以访问包含本机类型的头文件和编译的 lib 文件 我创建了一个C CLI项目并定义了ref class其中包含一个public static
  • ASPNetCore MVC 路由让服务器处理特定路由

    这是之前未解决的问题的分叉question https stackoverflow com questions 44732729 asp net application interfering with remote host lets e
  • 跟踪 1 参数矩阵族的特征向量

    我的问题是这样的 我正在尝试通过 截断的 Karhunen Loeve 变换对随机过程进行谱分解 但我的协方差矩阵实际上是一个单参数矩阵族 我需要一种方法来估计 可视化如何我的随机过程取决于这个参数 为此 我需要一种方法来跟踪 numpy
  • .NET 中“调试”和“发布”构建之间的主要区别是什么? [复制]

    这个问题在这里已经有答案了 重复 NET 中的调试与发布 https stackoverflow com questions 90871 debug vs release in net 为什么 NET 应用程序的构建有 调试 和 发布 模式
  • 如何检测手机后退按钮是否被按下

    Please how can I detect if the back button is been pressed in a mobile phone as shown in the image below 我尝试使用在桌面上完成的正常方
  • 使用 Python 的 P2P RDP

    我想用 Python 编写一个简单的 P2P RDP 客户端和服务器 这就是我绘制草图的方式 短时间截屏 压缩它们并发送到服务器应用程序 从服务器应用程序获取键盘 鼠标事件 将它们序列化并发送给客户端 客户端将反序列化它们并使用 SendI