2016-10-11 3 views
1

Я пытаюсь заполнить список приложений дома с помощью PyWinAuto. У меня есть 2 разных кадра. К сожалению, примеров этого мало. У меня ничего нет в рамках данных Swapy/print_control_identifiers, поэтому я использую команды.PyWinAuto перетащить и перетащить мышь из рамки управления в другую

Вот что я выработал до сих пор ..

Это нормально, но как падение:

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

Проблема ниже, должна быть возможность добавлять release_coords к выше, но с использованием другой кадр с release_coords. Так что я пытаюсь использовать другую рамку (бар), чтобы упасть, но не:

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

Нижеприведенными работает, но только в пределах одного кадра, и мне нужно удалить и перетащить из обув в рамках бара с координатами:

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

Я просмотрел все соответствующие документы в Интернете, и если я увижу еще один пример блокнота, я закричу.

Любая помощь, высоко ценится!

ответ

0

DragMouseInput() метод имеет параметр absolute=False по умолчанию. Вы можете переопределить его с помощью absolute=True и использовать абсолютные координаты экрана. Да, сейчас это обходное решение.

Вопрос очень хороший. Мы просто рассматриваем эту функциональность перед новой версией. Будут рассмотрены ваши отзывы. Большое спасибо!

+0

Yup that works. Благодарю. – Ellio

+0

app.TFrmMain.DragMouseInput (кнопка = 'левая', абсолютный = True, 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()) 
Смежные вопросы