gpt4 book ai didi

python - 如何让Python中的Pywinauto点击不同语言的按钮?

转载 作者:行者123 更新时间:2023-12-01 08:28:44 28 4
gpt4 key购买 nike

我就是无法让 Pywinauto 工作。基本上我希望它打开系统设置(已经弄清楚),然后单击“更改设置”,但用我的语言(德语),这将是“Einstellungen ändern”。我试过这个:

from pywinauto import Desktop, Application, keyboard 
from pywinauto.application import Application

app = Application().start("control system")
#so far it works, after that I've tried two options
#1
app.window_(title_re="System").window_(title="Einstellungen ändern").click()
#2
app.window_(best_match="System" ).window_(best_match="Einstellungen ändern").click()

我已经使用从 Inspect.exe 获得的 AutomationId(而不是“System”或“Einstellungen ändern”)尝试了这两个选项,并且尝试了 ClickInput() 而不是点击()

有什么想法吗?

最佳答案

有几个问题:

  • 正确的后端是 "uia"必须为 Application 指定对象。
  • 启动器进程会生成一个子进程,需要重新连接到该子进程。

此代码适用于我的英文 Win10:

from pywinauto.application import Application 

app = Application(backend="uia").start("control system")
app = Application(backend="uia").connect(title="System", timeout=20)

app.window(title="System").child_window(title="Change settings").invoke()
# app.window(title="System").child_window(title="Einstellungen ändern").invoke()

.click_input()应该也能工作。后端"uia"定义方法.click()作为 .invoke() 的别名对于 control_type="Button"只是,因为 InvokePattern 对于不同的控件类型可以有不同的含义。

<小时/>

注意:单击“更改设置”后,出现的“系统属性”窗口正在另一个进程内运行,需要方法 .connect()再次,也许分开Application为您提供方便的实例。

关于python - 如何让Python中的Pywinauto点击不同语言的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54041790/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com