Для автоматизации GUI приложений на Windows вы можете использовать несколько библиотек Python. Вот некоторые из них:
1. **PyAutoGUI**:
PyAutoGUI позволяет вашей программе управлять мышью и клавиатурой для автоматизации взаимодействия с GUI. Однако PyAutoGUI работает с координатами и изображениями на экране, а не с элементами управления GUI напрямую. Он не позволяет работать со свернутыми приложениями.
```python
import pyautogui
# Будьте осторожны с pyautogui, оно перемещает вашу мышь!
pyautogui.click(100, 100) # переместить мышь и кликнуть
pyautogui.typewrite('Hello world!', interval=0.25) # писать текст
```
2. **Pywinauto**:
Pywinauto - более сильная библиотека для автоматизации, которая может работать с элементами управления в Windows. Это позволяет взаимодействовать с элементами управления без использования координат, что делает ваш скрипт гораздо более надежным.
```python
from pywinauto.application import Application
app = Application(backend="uia").start('notepad.exe')
# Найдите текстовое поле и введите текст
app.UntitledNotepad.Edit.type_keys("Hello, world!", with_spaces=True)
```
Однако, взаимодействовать с приложением, когда оно свернуто, может быть сложно и часто невозможно, так как многие GUI фреймворки не обновляют элементы управления, если они не видны.
3. **AutoIt**:
AutoIt - это отдельный скриптовый язык для автоматизации Windows, но его также можно вызывать из Python с помощью библиотеки `PyAutoIt`. AutoIt имеет функции для работы с окнами, текстовыми полями, кнопками и другими элементами управления, и он может взаимодействовать с некоторыми свернутыми приложениями.
```python
import autoit
autoit.run("notepad.exe")
autoit.win_wait_active("[CLASS:Notepad]", 3)
autoit.control_send("[CLASS:Notepad]", "Edit1", "hello world{!}")
```
Для конкретной задачи считывания текста из label и вставки его в input поле, вы могли бы использовать Pywinauto. Вот пример того, как это можно сделать:
```python
from pywinauto.application import Application
# Подключаемся к уже запущенному приложению; используйте app.start('путь_к_приложению.exe') для запуска нового приложения
app = Application(backend='uia').connect(title='Название окна приложения')
# Получаем окно приложения
dlg = app.window(title='Название окна приложения')
# Считываем текст из label
label = dlg.child_window(auto_id='идентификатор_label', control_type='Text')
text_to_type = label.window_text()
# Вставляем текст в текстовое поле (input field)
input_field = dlg.child_window(auto_id='идентификатор_текстового_поля', control_type='Edit')
input_field.set_text(text_to_type)
# Имитация нажатия клавиш
input_field.type_keys("{ENTER}") # имитация нажатия Enter
```
Обратите внимание на то, что для работы с данным скриптом приложение не должно быть свернуто, так как многие действия зависят от элементов управления, доступных только когда прилож