使用 pydirectinput 模拟按键太慢

Posted

技术标签:

【中文标题】使用 pydirectinput 模拟按键太慢【英文标题】:Simulating Keypresses using pydirectinput too slow 【发布时间】:2021-09-24 00:29:16 【问题描述】:

所以我想在我的测试游戏中以小于 0.05 的间隔模拟按键。我使用了 pyautogui,它在按键之间添加了 0.1 秒的自动暂停,这可以通过 pyautogui.pause = 0.03 禁用,但你不能在游戏中使用 pyautogui,只有 pydirectinput 有效(因为游戏使用扫描码而不是 VK 是有人告诉我的)

pydirectinput 文档说他们有暂停功能,但它不起作用,因为pydirectinput.pause= 0.03 仍然大于 0.1 这是他们模块中的一些编码问题吗? 我该如何修复那里的任何其他模块,或者我自己可以使用 pywin32 或其他东西来做低级按键,如果它不是太难的话?

【问题讨论】:

【参考方案1】:

唯一对我有用的是进入 pythons 库文件夹并找到 _ _ init _ _ .py ,其中顶部有一行定义暂停,您可以在那里更改它,然后更改功能的速度我不知道为什么开发者没有添加一个简单的暂停功能实现。

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

只是大小写的问题。

您想使用 pydirectinput.PAUSE=0.03。

PyDirectInput 文档可能需要一些爱。

就像 DanishDeveloper 所说,如果您浏览 __init__.py 文件中的软件包,您可以看到一些定义,对于 1.0.4 版本,它设置为 PAUSE=0.1。

import pydirectinput

def pressFast(key, N=500):
  pydirectinput.PAUSE=0.01
  for x in range(N):
    pydirectinput.press(key)

【讨论】:

以上是关于使用 pydirectinput 模拟按键太慢的主要内容,如果未能解决你的问题,请参考以下文章

Android模拟器太慢怎么办?使用微软的VS模拟器

Java模拟按键精灵?

夜神安卓模拟器怎么用按键精灵 按键精灵链接夜神教程

.NET(C#) SendKeys模拟键盘按键不生效使用WinAPI的替代方案

在另一个应用程序中模拟按键和按键释放?

使用 Python for Linux 模拟按键事件