【问题标题】:Simulating Keypresses using pydirectinput too slow使用 pydirectinput 模拟按键太慢
【发布时间】:2023-03-22 18:26:01
【问题描述】:

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

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

【问题讨论】:

    标签: winapi keyboard pywin32 pyautogui


    【解决方案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)
    

    【讨论】: