python-3.x - 将击键发送到不集中的进程pywinauto
问题描述
我正在尝试从“az”发送常规键盘输入的击键,这可能包括也可能不包括方向箭头键到正在运行的游戏进程,但是我对 pywinauto 文档感到困惑:
我已经通过 pid 通过以下方式连接了现有进程:
from pywinauto.application import Application
from pywinauto.keyboard import SendKeys
app = Application().connect(process=1234)
#app.SendKeys('a')? Doesn't seem to work
我已经阅读了其他一些答案,但是对于文档的下一步是什么还不是很清楚,没有任何真实的例子。
我还从其他一些答案中读到 SendKeys 自动聚焦窗口,这不是我想要的,如果可能的话,是否可以静默地将击键发送到进程?
解决方案
有几个时刻。如果游戏进程有自己的带有本机句柄的窗口,您可以尝试以下操作:
app.window(title="Window title").send_keystrokes("something")
app.window(title="Window title").send_chars("something")
它甚至应该适用于最小化的窗口。特殊符号可能会出现差异,这些符号可能不适用于其中一些方法,甚至两者都不起作用。但是箭头可能应该与send_keystrokes
.
如果是 DirectX 游戏,发送密钥可能是更复杂的任务。不久前,我发现了一些关于潜在实现的参考:https ://github.com/pywinauto/pywinauto/issues/469虽然我还没有机会尝试它。
推荐阅读
- python - 如何在 Python 中将任意长度的位序列转换为有符号或无符号整数?
- css - Fullpage.js 和 fp-auto-height-responsive 错误
- java - git 宕机时的后备资源,同时启动配置服务器本身
- python - 如何切换窗口保持在顶部提示
- bash - 多个配对文件的 for 循环
- android - 使用列表适配器向回收站视图提交一个全新的列表会导致闪烁/滞后的动画
- django - 表单中的 CreateWithInlinesView 验证
- javascript - 为什么我收到错误 data.findIndex is not a function in React with Redux 项目?
- python - Blit 功能不起作用,循环会很快吗?
- reactjs - 组件隐藏时的响应式网格布局空块