Как переместить UIAWrapper windows в pywinauto? - PullRequest
1 голос
/ 12 апреля 2020

Я заметил, что есть метод для перемещения и изменения размера win32 windows через HwndWrapper в pywinauto (move_window), но ничего подобного для UIAWrappers. Знаете ли вы, как это можно сделать?

Я пытался использовать функцию getWindowsWithTitle pygetwindow для получения временного дескриптора win32, а затем использовать функции moveTo / resizeTo, но я не могу получить нужное окно из-за ошибки, говорящей ctypes.ArgumentError: argument 1: <class 'TypeError'>: expected WinFunctionType instance instead of WinFunctionType, что действительно странно.

1 Ответ

0 голосов
/ 18 апреля 2020

Хороший вопрос! Это не реализовано в бэкэнде "uia" так же, как в бэкенде "win32". Но я могу предложить рабочий код:

import pywinauto

app = pywinauto.Application(backend='uia').start(r'.\apps\WPF_samples\WpfApplication1.exe')
main = app.WPFSampleApplication.wrapper_object()

main.iface_transform.Move(0, 0) # move the window to top-left corner
main.iface_transform.Resize(500, 600) # change width and height

Нам нужно предоставить ярлыки и создать WindowWrapper, так как это указано c только для этого типа элемента управления. Это отслеживается в выпуске # 668 .

...