如何让Python中的Pywinauto单击另一种语言的按钮?

2024-09-24 00:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我就是没法让皮文auto工作。 基本上,我想让它打开系统设置(已经知道了),然后点击“更改设置”,但是用我的语言(德语)是“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()

我用AutomationId试过这两种方法检查.exe,而不是“System”或“Einstellungenändern”,我尝试了ClickInput()而不是{}。在

有什么想法吗?在


Tags: fromimportappautoapplicationtitle系统match
1条回答
网友
1楼 · 发布于 2024-09-24 00:33:49

几乎没有问题:

  • 正确的后端是必须为Application对象指定的"uia"。在
  • 启动程序进程生成需要重新连接到此子进程的子进程。在

此代码适用于我的英语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()的别名,因为InvokePattern对于不同的控件类型可能有不同的含义。在


注意:单击“更改设置”后,出现的“系统属性”窗口正在另一个进程中运行,该进程需要再次使用方法.connect(),并且可能为了方便而分离Application实例。在

相关问题 更多 >