【问题标题】:Pyautogui on RDPRDP 上的 Pyautogui
【发布时间】:2021-05-30 00:08:27
【问题描述】:

我在远程桌面访问的虚拟机中使用带有 Python 3 的 Windows 10 中的 pyautogui。

不幸的是,当我关闭远程连接时程序停止执行,给出“OSError:屏幕抓取失败”。

我在网上搜索了解决方案,但我发现的唯一解决方法是来自this link

使用允许您继续输出显示的远程桌面客户端,即使您最小化窗口/关闭您的 PC。我使用了终端(https://terminals.codeplex.com/ - 根本不隶属于它们,只是推荐,因为它为我解决了这个问题)。您可以设置它以保持显示,然后您的代码应该可以正常运行。

问题是我找不到持续显示的设置。我也找到了this:

pyautogui._pyautogui_x11._display = Xlib.display.Display(
            os.environ['DISPLAY']
        )

...但它似乎也不起作用(给我错误...)。

你有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: python-3.x remote-desktop pyautogui


    【解决方案1】:

    根据here的回答:

    当您从 RDP 断开连接时,Windows 会锁定计算机并且不再渲染屏幕,因此任何需要 GUI 的自动化应用程序都无法运行。 要在不丢失屏幕的情况下从 RDP 断开连接,您可以以管理员身份使用以下命令断开连接(最好制作一个 bat 文件并在需要从 RDP 断开连接时以管理员身份运行该文件):

    for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
     %windir%\System32\tscon.exe %%s /dest:console )
    

    【讨论】:

      【解决方案2】:

      我已经解决了使用TightVNC 而不是远程桌面和分离鼠标光标的问题。

      【讨论】:

      • 您能解释一下您使用 TigerVNC 执行此操作的步骤和配置吗?您是否必须修改分辨率设置?或者在windows上启用自动登录?您是否能够通过 Windows 任务计划程序来安排作业,还是必须在登录后手动运行它们?
      • 你好 emalcomb。 1 - 我没有必要。 2 - 据我记得(以前的工作),我已经使用凭据访问了远程。 3 - 登录后手动操作。
      • 唯一的其他特定配置步骤是从选项中分离鼠标。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      • 2011-08-28
      • 2017-07-29
      • 2023-02-04
      • 2015-10-30
      • 2020-03-12
      • 2012-08-09
      相关资源
      最近更新 更多