1. 如果你通过 RDP 窗口连接(最常见)
当你最小化本地的远程桌面窗口时,本地电脑的 RDP 客户端会通知服务器停止渲染 GUI。为了防止这种情况,你需要在控制端(你面前这台物理电脑)修改注册表:
- 路径:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client - 操作: 新建
DWORD (32-bit) Value,名称为RemoteDesktopGuiSelection,数值数据设为2。 - 作用: 即使你最小化了窗口,本地客户端也会强制服务器继续渲染画面,这样你的
pyautogui才能抓到图。

2. 如果你直接关闭(断开)远程连接
如果你是点击 X 关闭远程桌面,而希望程序在后台继续跑,那么仅仅修改本地注册表是不够的,因为连接已经断开了。这种情况下有几种处理方式:
- 推荐方案: 在远程电脑(跑脚本的那台)上创建一个
断开RDP并保持脚本不中断.bat文件,内容如下:
被控端是win:
Code snippettscon.exe %sessionname% /dest:console
当你想要断开连接时,不要点 X,而是右键以管理员身份运行这个批处理文件。它会把当前的远程会话强制转回本地控制台,界面不会被锁定,脚本就能继续运行。
总结对照表
| 场景 | 修改哪台电脑 | 具体操作 |
| 最小化窗口后脚本失效 | 控制端 (你面前的电脑) | 修改注册表 RemoteDesktopGuiSelection = 2 |
| 彻底关掉窗口后脚本失效 | 被控端 | 使用 tscon 命令断开连接,而不是点 X |