如何使用pywinauto点击

时间:2018-08-28 07:41:56

标签: python pywinauto

我想使用pywinauto来控制图像处理软件。

首先,我需要单击特定区域(用于图像拖动)以弹出用于输入路径的窗口。参见第一个数字。

然后,我需要输入路径并单击“选择文件夹”按钮。参见第二个图。

我尝试过:

from pywinauto import Desktop, Application, mouse, findwindows
from pywinauto.keyboard import SendKeys

app = Application(backend='uia').start(r"C:\Program Files\Duplicate Photo Cleaner\DuplicatePhotoCleaner.exe")
app.connect(path="DuplicatePhotoCleaner.exe")
app.DuplicatePhotoCleaner.print_control_identifiers()

Control Identifiers:

Dialog - 'Duplicate Photo Cleaner'    (L440, T126, R1480, B915)
['Duplicate Photo Cleaner', 'Duplicate Photo CleanerDialog', 'Dialog']
child_window(title="Duplicate Photo Cleaner", control_type="Window")
   | 
   | TitleBar - ''    (L464, T129, R1472, B157)
   | ['', 'TitleBar']
   |    | 
   |    | Menu - 'System'    (L448, T134, R470, B156)
   |    | ['System', 'Menu', 'SystemMenu', 'System0', 'System1']
   |    | child_window(title="System", auto_id="MenuBar", control_type="MenuBar")
   |    |    | 
   |    |    | MenuItem - 'System'    (L448, T134, R470, B156)
   |    |    | ['System2', 'SystemMenuItem', 'MenuItem']
   |    |    | child_window(title="System", control_type="MenuItem")
   |    | 
   |    | Button - 'Minimize'    (L1333, T127, R1380, B157)
   |    | ['Minimize', 'Button', 'MinimizeButton', 'Button0', 'Button1']
   |    | child_window(title="Minimize", control_type="Button")
   |    | 
   |    | Button - 'Maximize'    (L1380, T127, R1426, B157)
   |    | ['Button2', 'Maximize', 'MaximizeButton']
   |    | child_window(title="Maximize", control_type="Button")
   |    | 
   |    | Button - 'Close'    (L1426, T127, R1473, B157)
   |    | ['CloseButton', 'Button3', 'Close']
   |    | child_window(title="Close", control_type="Button")

有人可以帮忙吗?

非常感谢您。

First screen

Screen after click

2 个答案:

答案 0 :(得分:0)

类似于+按钮,您需要单击该按钮以获取窗口(如右图所示)是所有者绘制的。

因此,只有一种方法可以打开“添加要搜索的文件夹”窗口:通过传递坐标来使用click_input方法。

一旦窗口出现,您就可以使用下面的代码来设置值:

app.DuplicatePhotoCleaner.child_window(title="Folder:", auto_id="1152", control_type="Edit").set_text('Hello world') #or
app.DuplicatePhotoCleaner['Folder:Edit'].set_text('Hello world')


Application().connect(title='Add folder to search')...

请通过pywinauto docs获取更多信息。

答案 1 :(得分:0)

如何使用 pywinauto 单击:

pywinauto.mouse.click(button='right\left', coords=(x,y))