如何让pywinauto在后台工作?

How to make pywinauto work in background?

我想在后台使用pywinauto以避免干扰我的工作。

随着自动化开始,我需要停止所有工作。

如何让pywinauto在后台静默运行?

并非总是可以默默地做所有事情。有些方法不需要真正的点击,但无论如何你必须重新编写脚本。

click_input 和派生方法只能与聚焦 window 以及 type_keys 方法一起使用。其他一些方法可能会使 window 成为焦点(尤其是 "uia" 后端),具体取决于它们的应用端实现。

一种可能的解决方案是使用虚拟机或远程机器,但您必须将脚本复制到此 VM 并在那里准备 Python 环境。如需进一步指导,我建议阅读 pywinauto's Remote Execution Guide.

backend="win32" 的良好背景脚本示例已在几年前发布在 Whosebug 上(Notepad++ 自动化)。只需将它与 pywinauto==0.6.5 对齐:

我认为 type_keys() 需要将目标 window 设置为前景。 send_keystrokes() 保留目标 window 背景。 尚未测试鼠标点击,仅适用于键盘输入。 window10 与 python3.7

from pywinauto import Application
app = Application(backend="win32").connect(process=12345)
form = app.window(title_re="windowtitle")
for i in range(0,10):
    form.send_keystrokes(str(i))
    time.sleep(0.5)
    form.send_keystrokes('{ENTER}')