【问题标题】:How to Receive Events from an Application running on a Remote Desktop using pywinauto如何使用 pywinauto 从远程桌面上运行的应用程序接收事件
【发布时间】:2020-09-04 16:20:46
【问题描述】:

使用 pywinauto 的自动化在具有鼠标/键盘和 send_keys 事件的远程桌面应用程序中运行良好。 但我需要跟踪在远程桌面上运行的应用程序生成的事件以构建条件用例。

例如,假设我在远程桌面打开了一个 excel 文件,使用 pywinauto 和 send_keys 函数我可以在一些预定义的单元格中写入一些文本(使用鼠标坐标) 的那个文件。

但是当我在 excel 中单击退出按钮时,它会弹出一个窗口,询问我是否要在关闭之前保存 excel。我需要在 pywinauto 中捕获该事件。

pywinauto 在我的本地运行,所有任务都将在远程桌面 (win32) 上进行。

注意:我不想通过鼠标单击预定义坐标来解决这种情况,因为实际上,基于我的应用程序的弹出窗口,我需要执行一些其他任务。

【问题讨论】:

    标签: python automation desktop rdp pywinauto


    【解决方案1】:

    远程桌面不会将任何 GUI 元素信息传递给本地计算机。所以你必须在远程机器上运行 pywinauto 脚本。所有必要的食谱都在这里:Remote Execution Guide.

    【讨论】:

    • 感谢您的回复。不幸的是,由于安全限制,远程机器上不能安装任何东西。
    • 允许远程桌面已经是足够的安全漏洞了。您必须向您的安全人员解释这是愚蠢的方式。如果您没有足够的权限来推动您的 IT 部门,我可以建议将脚本打包为可执行文件并将其复制到远程机器上,而无需安装 Python。但是,如果您使用“uia”后端,您可能会面临 comtypes 缓存带来的可移植性副作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多