向子窗口发送键事件
我正在用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
我成功地使用 EnumChildWindow 这个方法来列出应用程序中所有的窗口句柄,然后通过 PostMessage 发送消息。
import win32api
win32api.PostMessage(handler, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)