Win32api:按住键

Win32api: Press and Hold key

我正在寻找一种方法来按下一个键并按住它特定的时间。我试过:

# Method 1
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys

# Method 2
win32api.SendMessage

# Method 3
win32api.keybd_event

所有这些方法,似乎只按一次键。我需要按住键。

我查看了这些资源:python simulate keydown (SO), win32api.keybd_event, press-and-hold-with-pywin32 (SO), simulate-a-hold-keydown-event-using-pywin32 (SO), Vitual keystroke (Github)

如果你可以使用 PyAutoGUI,这就可以了:

import pyautogui
import time

def hold_key(key, hold_time):
    start = time.time()
    while time.time() - start < hold_time:
        pyautogui.keyDown(key)

hold_key('a', 5)

它会持续按下 'a' 键 5 秒。