将按键事件发送到子窗口

发布于 2024-12-07 08:07:01 字数 464 浏览 2 评论 0原文

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

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

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

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

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

I'm developing an application in python which sends keyboard events to another external application. I use the pywin32 package to set the external application and send the desired key:

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

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

The external application I'm using has a virtual keyboard and a text area which receives the events of the keyboard. I want to send the key event (in this case, an 'ENTER') to the keyboard area (because the keyboard is making a scan through the letters and will select the desired letter with an Enter). However, my application is sending the key events to the text area instead of the keyboard.

I tried to get the handle of the window I want with FindWindow and EnumChildWindow from win32gui... So, is there a way to send the keys to the specific child window of the external application?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱花落人离去 2024-12-14 08:07:01

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

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

I manage to choose the specific handle with EnumChildWindow (to enumerate all the handles of the application) and send the message with PostMessage.

   import win32api
   win32api.PostMessage(handler, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文