将关键事件发送到子窗口

时间:2011-09-29 11:12:16

标签: python keyboard pywin32 childwindow

我正在使用python开发一个应用程序,它将键盘事件发送到另一个外部应用程序。我使用pywin32包来设置外部应用程序并发送所需的密钥:

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

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

我正在使用的外部应用程序有一个虚拟键盘和一个接收键盘事件的文本区域。我想将键事件(在本例中为“ENTER”)发送到键盘区域(因为键盘正在扫描字母,并将使用Enter选择所需的字母)。但是,我的应用程序将关键事件发送到文本区域而不是键盘。

我试图从win32gui获取FindWindow和EnumChildWindow所需窗口的句柄...那么,有没有办法将密钥发送到外部应用程序的特定子窗口?

1 个答案:

答案 0 :(得分:0)

我设法选择EnumChildWindow的特定句柄(枚举应用程序的所有句柄)并使用PostMessage发送消息。

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