PyWinAuto将鼠标从控制框架拖放到另一个

时间:2016-10-11 10:23:45

标签: pywinauto

我正在尝试使用PyWinAuto填充内部应用程序列表。我有2个不同的帧。不幸的是,网上的例子非常少。我在Swapy / print_control_identifiers给出的框架中没有任何内容,因此我使用了co-ords。

到目前为止,我已经解决了这个问题。

这没关系,但如何放弃:

app.foo.DragMouse(button='left',pressed='',press_coords=(85,65))

下面的问题,应该有一种方法可以将release_coords添加到上面但使用另一个框架和release_coords。所以我试图使用不同的框架(条形图)但是没有:

app.bar.Drop(button='left',pressed='',coords=(240,26))

下面有效,但只能在同一帧内,我需要从foo下拉并拖动到带有坐标的条形框架:

app.onlyfoo.DragMouse(button='left',pressed='',press_coords=(85,65),release_coords=(85,200))

我已经在线查看了所有相关文档,如果我再看到记事本示例,我会尖叫。

任何帮助,非常感谢!

2 个答案:

答案 0 :(得分:0)

DragMouseInput()方法默认为absolute=False参数。您可以使用absolute=True覆盖它并使用绝对屏幕坐标。是的,现在是一种解决方法。

问题非常好。我们刚刚在新版本之前审核此功能。会考虑你的反馈。非常感谢!

答案 1 :(得分:0)

我用新的pywinauto 0.6创建了一个小例子。它只是试图在列表框中拖放树视图项。 (小心当前打开的文件夹)

import pywinauto
app = pywinauto.Application(backend=u'uia')
appconnect = app.start(u'notepad.exe')
dlg = app.UntitledNotepad
dlg.menu_select(u'File->Open')
dlg.Open.TreeView.get_item("\\Desktop\Libraries").expand()
tv_music = dlg.Open.TreeView.get_item("\\Desktop\Libraries\Music")
# here we drag an item between controls of the dialog
tv_music.drag_mouse_input(dlg.Open.ListBox.wrapper_object())