#python #windows
Установил себе модуль win32com.client В нём можно сделать имитацию нажатия клавиш (А ля Ctrl + C): shell = win32com.client.Dispatch('WScript.Shell') shell.SendKeys('^a^x') Однако в процессе появилась одна очень странная особенность: все эти имитация нажатия запускаются в фоновом потоке. В моём случае это недопустимо. Каким образом сделать так, чтобы вся программа ждала, пока сымитируется нажатие? Пробовал threading - получилось, однако программа теперь вместо 0.1с. работает 3с, что недопустимо.
Ответы
Ответ 1
Если не принципиально использование модуля win32com.client, можно воспользоваться более удобным pywinauto (он ждёт отправки клавиш в приложение): from pywinauto.application import Application from datetime import datetime # Запускаем блокнот app = Application().start("notepad") # Можно посылать спецсимволы # app.UntitledNotepad.Edit.type_keys("^a^v") # app.UntitledNotepad.Edit.type_keys("{VK_F5}") # Вставим текущее время для проверки app.UntitledNotepad.Edit.type_keys(datetime.now().strftime("%H:%M:%S.%f")) print(datetime.now().strftime("%H:%M:%S.%f")) Документация по эмуляции клавиатурных нажатий Тестировалось на Python 3.6 со свежим pywinauto, Windows 7 64-bit
Комментариев нет:
Отправить комментарий