2016-10-11 215 views
1

我試圖使用PyWinAuto填充內部應用程序列表。我有2個不同的框架。不幸的是,網上很少有這樣的例子。我在Swapy/print_control_identifiers給出的框架內沒有任何內容,因此我使用共同的ords。PyWinAuto從控制框架下拉並拖動鼠標到另一個

這是我迄今制定了..

這是確定的,但如何降:下面

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

問題,應該有一個辦法release_coords添加到上面,但使用另一個框架與release_coords。所以我試圖用不同的幀(BAR)下降,但沒有:

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

下面的作品,但只能在同一框架和我需要刪除和FOO阻力與COORDS框條:

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

我已經在網上看過所有相關的文檔,如果我看到任何更多的記事本的例子,我會尖叫。

任何幫助,非常感謝!

回答

0

DragMouseInput()方法有absolute=False參數爲默認值。您可以使用absolute=True覆蓋它並使用絕對屏幕座標。是的,目前這是一種解決方法。

這個問題非常好。我們只是在新版本發佈之前審查這個功能。將考慮您的反饋。非常感謝!

+0

是的,它的工作原理。謝謝。 – Ellio

+0

app.TFrmMain.DragMouseInput(按鈕= '左', 絕對=真, press_coords =(110 300), release_coords =(500225)) – Ellio

+0

但當然,abolute共同ORDS意味着你必須有你的應用程序中的確切一直在同一個地方..肯定有更好的辦法.. – Ellio

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()) 
相關問題