Отправить ключевое событие в дочернее окно - PullRequest
0 голосов
/ 29 сентября 2011

Я разрабатываю приложение на python, которое отправляет события клавиатуры в другое внешнее приложение.Я использую пакет pywin32 для установки внешнего приложения и отправляю нужную клавишу:

import win32com.client as w32
shell = w32.Dispatch("WScript.Shell")

shell.AppActivate(desired_application)
shell.SendKeys("{ENTER}")

Используемое мной внешнее приложение имеет виртуальную клавиатуру и текстовую область, которая принимает события клавиатуры.Я хочу отправить событие клавиши (в данном случае, «ENTER») в область клавиатуры (потому что клавиатура выполняет сканирование букв и выберет нужную букву с помощью Enter).Тем не менее, мое приложение отправляет события клавиш в текстовую область вместо клавиатуры.

Я попытался получить дескриптор нужного мне окна с помощью FindWindow и EnumChildWindow из win32gui ... Итак, есть ли способ отправить ключи конкретному дочернему окну внешнего приложения?

1 Ответ

0 голосов
/ 03 октября 2011

Мне удается выбрать определенный дескриптор с помощью EnumChildWindow (для перечисления всех дескрипторов приложения) и отправить сообщение с помощью PostMessage.

   import win32api
   win32api.PostMessage(handler, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
...