以编程方式操作活动 RDP 会话
Programmatically manipulating active RDP session
我有 Mac OSX 运行 并希望以编程方式操作活动的 RDP 会话,例如,在会话中启动的程序中执行操作(特别是动态,但是知道一个通用的方法也没什么坏处。
我不知道这是否可能。当前使用 RDP 文件启动带有凭据的 RDP 会话,并具有我的活动会话的进程 ID,通过 NSWorkspace 检索。有了它,我可以做一些基本的事情,比如再次关闭我的会话,但我想操纵会话。
我的 RDP 客户端目前是 Microsoft Remote Desktop。
希望在 bash 或 python 中实现我的目标。
这里有一些想法:
- 使用
Quartz
graphics library in Python to manipulate with RDP client window. Here is a good start:
- Use
libfreerdp
via ctypes
.
- 运行 Wine and use tools such as AutoHotKey, AutoIT or
xdottool
. See: How to programmatically control X11 forwarded apps? 下的 RDP 会话
- 使用 WinRM(
pywinrm
) instead of RDP to run remote commands/scripts. Check this example。这可以允许 运行 上面提到的自动工具(例如控制应用程序的 AHK 脚本)。
- 使用Python GUI automation library for simulating user interaction in apps.
- 另请参阅:GUI scipting for Linux。
- Write an RDP client that dumps the pixels of the screen。例如。 WebRTC 或使用 libFreeRDP。
- 如果 RDP 客户端 运行s 通过 X11 协议 (Quartz),您可以尝试按此 post.
接入 X11 请求
- 使用FreeRDP and its API。它的客户端兼容 Linux、macOS 和 Windows.
我有 Mac OSX 运行 并希望以编程方式操作活动的 RDP 会话,例如,在会话中启动的程序中执行操作(特别是动态,但是知道一个通用的方法也没什么坏处。
我不知道这是否可能。当前使用 RDP 文件启动带有凭据的 RDP 会话,并具有我的活动会话的进程 ID,通过 NSWorkspace 检索。有了它,我可以做一些基本的事情,比如再次关闭我的会话,但我想操纵会话。
我的 RDP 客户端目前是 Microsoft Remote Desktop。
希望在 bash 或 python 中实现我的目标。
这里有一些想法:
- 使用
Quartz
graphics library in Python to manipulate with RDP client window. Here is a good start: - Use
libfreerdp
viactypes
. - 运行 Wine and use tools such as AutoHotKey, AutoIT or
xdottool
. See: How to programmatically control X11 forwarded apps? 下的 RDP 会话
- 使用 WinRM(
pywinrm
) instead of RDP to run remote commands/scripts. Check this example。这可以允许 运行 上面提到的自动工具(例如控制应用程序的 AHK 脚本)。 - 使用Python GUI automation library for simulating user interaction in apps.
- 另请参阅:GUI scipting for Linux。
- Write an RDP client that dumps the pixels of the screen。例如。 WebRTC 或使用 libFreeRDP。
- 如果 RDP 客户端 运行s 通过 X11 协议 (Quartz),您可以尝试按此 post. 接入 X11 请求
- 使用FreeRDP and its API。它的客户端兼容 Linux、macOS 和 Windows.