【问题标题】:stop a pynput listener python停止一个pynput监听器python
【发布时间】:2021-10-28 08:01:02
【问题描述】:

我知道可能已经有答案了,但是从我查找 python 的内容来看,我真的找不到关于如何停止 pynput 侦听器的非常直接的答案。

from pynput.keyboard import Key, Listener
from threading import Thread

stopThreads = True

def on_press(key):
    if keyboard.is_pressed("a"):
        print("pressed a")

def starting():
    global stopThreads
    while True:
        if stopThreads == True:
            with Listener(on_press=on_press) as listener:
                if listener.is_alive():
                    pass    
                else:
                    listener.join()
        elif stopThreads == False:
            listener.stop()

t = Thread(target=starting)
t.start()

time.sleep(5)
print("stop")

stopThreads = False

我不确定这对你们来说是什么,但看起来它工作得很好,但实际上如果我按下“a”它甚至不会注册,所以我有点困惑如何停止 pynput 监听器如果 a变量为 False 以及如何将其保持在后台线程中

【问题讨论】:

    标签: python multithreading pynput


    【解决方案1】:

    Nvm,我现在只是很盲目,因为我什至不需要使用监听器,我可以说

    stopThreads = True
    
    def detectPress():
        global stopThreads
        while True:
            time.sleep(0.05)
            if stopThreads == False:
                print("stopping")
                break
            else:
                if keyboard.is_pressed("a"):
                    print("a")
    
    t = Thread(target=detectPress)
    t.start()
    
    
    time.sleep(5)
    stopThreads = False
    

    【讨论】:

      猜你喜欢
      • 2019-04-19
      • 2021-02-11
      • 2023-03-14
      • 2021-07-24
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 2020-06-01
      • 2018-01-25
      相关资源
      最近更新 更多