Pyhton3 - 获取准确的按键持续时间 - 按键重叠

问题描述 投票:0回答:0

虽然 .exe 正在运行,但我想监视键 'w' 's' 'a' 'd' 和 'space' 是否被长按(超过 1 秒)。

当同时按下两个键时,下面的代码无法准确工作,例如“w”第一次按下 3.3 秒,“d”第二次按下 1.5 秒“a”第三次按下 0.3 秒,而“w”仍然按下.

我希望:

  • 你按下 a 0.3 秒(按第三次)
  • You pressed d for 1.5 seconds (pressed second)
  • 您按下 w 3.3 秒(先按下)
import time
import keyboard

while True:
    start = time.perf_counter()
    a = keyboard.read_event()
    if a.name == "esc":
        break
    elif a.event_type == "down":
        b = keyboard.read_event()
        if a.name == "w" or a.name == "s" or a.name == "a" or a.name == "d" or a.name == "space":
            while not b.event_type == "up" and b.name == a.name:
                b = keyboard.read_event()
            end = time.perf_counter()
            print('You pressed', a.name, 'for', end-start, 'seconds.')
python-3.x time keyboard
© www.soinside.com 2019 - 2024. All rights reserved.