【问题标题】:how to terminate pynput keyboard listener with a timer or a pressed key?如何使用计时器或按键终止 pynput 键盘侦听器?
【发布时间】:2021-11-15 19:54:26
【问题描述】:

我知道如何使用计时器或要按下的特定键来终止 pynput 键盘侦听器(在本论坛中讨论了它们)。 我找不到混合 2 的方法,以便在预设时间后或在该时间之前终止侦听器(如果按下特定键(例如 Key.end)) 我尝试了很多组合,但到目前为止它们都不起作用。 在@martineau cmets 之后添加:

一种显然很自然的方式可能是:

from pynput import keyboard as kb
from time import time
exit_script=False
def action_press(key):
    global exit_script
    if key == kb.Key.end:
        print ('end pressed')
        exit_script= True
    return False
timeOn=10
t0=time()
with  kb.Listener(on_press=action_press,suppress=True) as l:
    while exit_script== False and time()-t0<timeOn:
        pass
    l.join()
print('listener terminated')

但它未能按照计时器标准终止。

有人知道这有多正确,或者是否有替代方法? 谢谢

【问题讨论】:

标签: python pynput


【解决方案1】:

好的,我刚刚使用 pynput 控制器找到了一个答案。它成功了。

from pynput import keyboard as kb
from time import time
mykb=kb.Controller()
exit_script=False
def action_press(key):
    global exit_script
    if key == kb.Key.end:
        print ('end pressed')
        exit_script= True
    return False
timeOn=10
t0=time()
with  kb.Listener(on_press=action_press,suppress=True) as l:
    while exit_script== False:
        if time()-t0>timeOn:
            mykb.press(kb.Key.end)
            mykb.release(kb.Key.end)
        

      
    l.join()
print('listener termianted')

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 2021-02-11
    • 2019-04-04
    • 2022-01-02
    • 2020-12-15
    • 2018-09-02
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多