【问题标题】:pynput.keyboard terminate program when key is pressed not respondingpynput.keyboard 按下键时终止程序没有响应
【发布时间】:2021-07-06 21:22:15
【问题描述】:

我在这里有这段代码,我想要的是代码每 5 秒输入一次“potato”。我还想要一个“退出”命令,并且我想要它以便当我按下= 时它会停止程序。但是,不仅代码不起作用,而且在键入/输入“potato”之后还会键入“=”。有人可以帮忙吗?谢谢。

from pynput.keyboard import Key, Controller
import time

keyboard = Controller()
time.sleep(3)

while True:
  keyboard.type('potato')
  keyboard.press(Key.enter)
  keyboard.release(Key.enter)
  if keyboard.type('asdf'):
    quit()
  time.sleep(5)

附:没有错误或任何东西

【问题讨论】:

    标签: keyboard pynput


    【解决方案1】:

    这里最明显的答案是将if 语句中的“asdf”更改为“=”,但如果这不能解决问题,您可以添加一个侦听器来检测按键。

    from pynput import keyboard, Key, Controller
    import time
    
    # set your termination key here
    cut_key = "="
    
    # check if key pressed is cut_key, if so, quit
    def on_press(key):
        try:
            if key.char == cut_key:
                quit()
        except AttributeError:
            if key == cut_key:
                quit()
    
    # non-blocking listener
    listener = keyboard.Listener(
        on_press=on_press)
    listener.start()
    
    keyboard = Controller()
    time.sleep(3)
    
    while True:
        keyboard.type('potato')
        keyboard.press(Key.enter)
        keyboard.release(Key.enter)
        time.sleep(5)
    

    我没有测试这个代码,如果它不起作用请评论。 https://pynput.readthedocs.io/en/latest/keyboard.html

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多