Как я могу отправить текст, когда окно свернуто?

Я пробовал использовать библиотеки Python: pyautogui + pwinauto. Но безрезультатно. После того, как окно свернуто, текст больше не отправляется.

фрагмент кода:

import pyautogui
import time
pyautogui.hotkey('win')
time.sleep(1)
pyautogui.typewrite('notepad')
pyautogui.hotkey('enter')
time.sleep(2)
pyautogui.typewrite('test aaaaaaaaaaaaaa bbbbbbbbbbbb cccccccccc ')

person george    schedule 08.10.2015    source источник
comment
Согласно документам pyautogui, вы не можете сделать это: Нажатия клавиш переходят туда, где находится курсор клавиатуры во время вызова функции.   -  person Steven Rumbalski    schedule 08.10.2015
comment
Который из? Окно вашей программы или целевое окно?   -  person cdonts    schedule 08.10.2015
comment
целевое окно, в данном случае «блокнот».   -  person george    schedule 09.10.2015
comment
Ответ выглядит правильным и все еще не принят. Извините, что напоминаю о такой старой теме. Только что обновил ответ для последней версии pywinauto.   -  person Vasily Ryabov    schedule 21.01.2019


Ответы (1)


pywinauto может отправлять текст в свернутое окно.

from pywinauto import Application
app = Application(backend="win32").start('notepad.exe')
app.UntitledNotepad.minimize()
app.UntitledNotepad.Edit.set_text('some text\nsecond line')

Метод type_keys() требует, чтобы элемент управления был в фокусе. Но set_text отправляет WM_SETTEXT сообщение дескриптором окна, поэтому фокус не требуется.

Другой пример сценария, работающего со свернутым окном: Python — управление окном с помощью pywinauto, когда окно свернуто или скрыто

person Vasily Ryabov    schedule 14.10.2015