PyAutoGui - Press key for X seconds



我当前正在使用一个脚本,该脚本按' w,a,s,d '键,以便在任何游戏中移动角色。为此,我需要将' w '键按特定时间施加。我该如何实现?

我想到了:

pyautogui.keyDown('w')
time.sleep(2)
pyautogui.keyUp('w')

,但这只是暂停了整个程序,并且没有按下键,所以这对我没有用。

pyautogui.keyDown()的DOC-string中所述:

执行键盘键,而无需发布。这会把 钥匙处于截止状态。

注意:出于某种原因,这似乎不会引起键重复 如果在文本字段上键入键盘键,就会发生。


您需要一种不同的方法 - 您可以使用pygame-与此

或,如果您想留下pyautogui,可以尝试这样的事情:

def hold_W (hold_time):
    import time, pyautogui
    start = time.time()
    while time.time() - start < hold_time:
        pyautogui.press('w')
with pyautogui.hold(key):
    pyautogui.sleep(hold)

这将在不制作自己的功能的情况下解决问题。

最新更新