изменение текста на панели инструментов с помощью pywinauto - PullRequest
0 голосов
/ 14 июля 2020

У меня есть окно выбора файлов из приложения windows, которое я пытаюсь автоматизировать.

введите описание изображения здесь

Я могу изменить поле имени файла внизу, используя

app2.window(title_re='Select a batch file') \
            .File_name_Edit.set_text(selected_filename)

Я ранее ввел полный путь к файлу и имя файла в нижнее поле, однако это не будет больше принимать косые черты в поле имени файла после обновления windows. Отсюда и проблема.

Итак, проблема в верхнем поле (имя каталога / папки).

Вручную я могу выбрать поле, выделить его, а затем перепечатать каталог.

Я не могу найти способ сделать это с помощью pywinauto.

Попытки:

toolbar2 = app2.window(title_re='Select a batch file')  # \
#     .child_window(title_re='Address', auto_id='1001')
#     .child_window(title_re='Address', control_type="ToolBar", auto_id='1001')
file_path_address = toolbar2['Address band toolbarToolbar'].click_input()
file_path_address.set_text(directory_path)

# ToolbarWrapper(toolbar2).set_text(directory_path)
# ToolbarWrapper(toolbar2).click(button='All locationsSplitButton').set_text(directory_path)
# ToolbarWrapper(toolbar2)['Address:'].set_text(directory_path)

Я использую set_text, так как автоматизация должна работать за заблокированным экраном, type_keys не работает с заблокированный экран, так как type_keys - это метод клавиатуры, и Windows блокирует ввод с клавиатуры, когда экран заблокирован.

У меня нет доступа к внутренним компонентам программы, которая автоматизируется, чтобы изменить исходный путь к каталогу и мне нужно чтобы изменить его для чтения из другого места.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 18 июля 2020

См. Код ниже, он отлично работает с Notepad ++ на Win 10

import time
from pywinauto.application import Application

app = Application().Connect(title=u'Open', class_name='#32770')
window = app.Dialog

toolbarwindow = window.Toolbar3
toolbarwindow.Click()
time.sleep(0.30)

static = window.Edit2
directory_path = "C:\Users\Desktop"

raw_directory_path = r'{}'.format(directory_path)
static.set_edit_text(text = raw_directory_path)
static.type_keys("{ENTER}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...