【问题标题】:Installing and running pywinauto in a remote desktop在远程桌面安装和运行 pywinauto
【发布时间】:2020-09-28 19:02:42
【问题描述】:

我想在远程桌面上自动化只能在 Windows XP 中运行的非常旧的软件 (drafix)。

是否可以编写一个 pywinauto 脚本直接与软件控件交互,而不需要在 GUI 上发送鼠标/键盘点击,然后最小化远程桌面屏幕甚至锁定 PC?

我需要打开程序,遍历文件名列表,打开每个文件名并另存为不同的格式。

我通过一些基本的 GUI 自动化来做到这一点 - 如有必要,单击按钮、发送键盘快捷键并输入文件名形成一个列表。但它不是很可靠,我想最小化远程桌面窗口并使用我的电脑而不是让它在前台。

从我读过的here 来看,应该有一些解决方法,我需要在远程桌面上安装旧版本的 Python(知道是哪一个吗?)以在那里编写和运行脚本。

【问题讨论】:

    标签: python remote-desktop pywinauto


    【解决方案1】:

    您可以做的只是将您的脚本复制到远程机器并在那里运行。关于最小化或关闭 RDP,Remote Execution Guide 中描述的解决方法和技巧很少,它总结了一些 StackOverflow 答案。

    【讨论】:

    • 谢谢。问题是我想使用 SWAPY 或 py_inspect 来正确识别控件,并在机器上进行调试,而不必在机器之间来回移动脚本
    • RDP 不向本地计算机提供任何 GUI 元素信息。所以在你的情况下,所有调试都应该只在远程机器上进行。
    • 顺便说一句,您必须在 Windows XP 上卸载 comtypes:pip install pywinauto,然后是 pip uninstall -y comtypes。这是必需的,因为 UIAutomationCore.dll 在 WinXP 上不存在,所以 backend="uia" 不可用。如果您需要backend="uia",则必须安装适用于 WinXP 的 .NET Framework 3.5 或更高版本。
    • 我已经设法让它工作了——使用 swapy 来检查控件,并在我自己的机器上对其进行编程,然后只使用 pyinstaller 来准备一个可执行文件。真正的挑战是让它在 XP 上运行——但是你关于 comtypes 的提示有帮助,必须将--hidden-import comtypes, comtypes.gen,comtypes.patcher, comtypes.GUID 添加到 pyinstaller 选项中,并在 32 位 Python 3.4 环境中准备一切——miniconda 在这里提供了帮助。谢谢你瓦西里!
    • 不客气。我打算稍后在图书馆修复它:github.com/pywinauto/pywinauto/issues/703
    【解决方案2】:

    还有其他方法可以使用 pywinauto 控制远程桌面上的 gui 应用程序。您可以使用 rpyc 或远程 Python 调用。那是一个用于 rpc(远程过程调用)的 python 库

    https://rpyc.readthedocs.io/en/latest/

    您的远程计算机作为服务器,您的主机作为 rpyc 中的客户端。

    首先你需要在远程计算机上运行 rpyc_classic.py 并使用 pywinauto 库。例如,我使用 rpyc 在远程计算机上使用 pywinauto 启动 microsip。

    远程计算机的ip是192.168.222.222。

    import rpyc
    ip = "192.168.222.222"
    conn = rpyc.classic.connect(ip)
    conn.execute("from pywinauto import Application")
    conn.execute(r"Application().start(r'C:\Program Files (x86)\MicroSIP\microsip.exe')")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多