【问题标题】:Keyboard output to multiple programs simultaneously?键盘同时输出到多个程序?
【发布时间】:2017-08-22 07:33:18
【问题描述】:

我目前的问题是模拟任意程序(例如正在运行的游戏)的击键输入。

目前我在 Windows 上使用 win32 库来查找窗口(win32gui.FindWindow)并获取焦点(通过 win32gui.SetForegroundWindow),然后发送键盘输入(win32api.keybd_event)。

如果我只向单个程序发送输入,但我希望并行化,同时玩多个游戏,这很有效。这不适用于我当前的方法,因为两个应用程序都需要“聚焦”键才能转到正确的应用程序,从而相互干扰。

理想情况下,我想要将输入发送到给定窗口、不需要 focus 并且独立于其他窗口或当前聚焦窗口的输入。

【问题讨论】:

  • 不幸的是,该程序没有像记事本那样的“编辑”子程序,并且无法识别通过 sendmessage 和 postmessage 发送的键输入。
  • 你不需要“编辑”孩子。只需将消息发送到此应用程序的主窗口。编辑子项对记事本很重要,但 sendmessage 对任何 Windows 程序都有效
  • 您可以使用任何类似 spy++ 的 Windows 实用程序来检查窗口应用程序的内部,您是否需要“编辑”子级。 stackoverflow.com/questions/4088368/… 这个链接也不能直接回答你的问题,但如果你愿意,这个实用程序可以帮助你。 :)
  • 你可以从这里开始阅读:msdn.microsoft.com/en-us/library/windows/desktop/…这篇文章解释了消息在windows中是如何工作的。附言此链接也不能回答您的问题,它只会让您了解 sendmessage 和其他消息传递功能的工作原理

标签: python linux windows


【解决方案1】:

我的理解是,只有前台窗口获得焦点并且可以处理键盘输入来播放。不确定将输入发送到背景窗口是否有意义......

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2020-11-24
  • 2017-02-16
  • 2019-05-21
相关资源
最近更新 更多