如何启用Pynput监视另一个程序中的键盘

时间:2020-03-17 13:13:57

标签: python pynput

我正在使用Pynput监视键盘以简化某些操作。当程序专注时,它会很好地工作,但是失去专注时,它不会响应。

是否应该添加其他配置,以便当我专注于word或excel或全屏游戏等其他程序时可以触发侦听器?

class UserListener(threading.Thread):

    def __init__(self):
        super().__init__()

    def run(self):
        print('start listening...')

        def on_press(key):
            if key == Key.home:
                print('key home is pressed')
            elif key == Key.esc:
                return False

        with Listener(on_press=on_press) as listener:
            listener.join()


if __name__ == '__main__':
    lsner = UserListener()
    lsner.start()

================================================ =====================

更新1:

上面的程序可以正常运行。但是,当DNF(我玩过的游戏)集中注意力时,它将无法正常工作。

1 个答案:

答案 0 :(得分:0)

实际上,不必创建额外的线程,pynput为您提供了线程。您的代码可以简化为:

def UserListener():
    print("start listening...")
    def on_press(key):
        if key == Key.home:
            print('key home is pressed')
        elif key == Key.esc:
            return False

    listener = keyboard.Listener(on_press=on_press)
    listener.start()

关于问题:

我想有两个原因:

  1. pynput使用普通线程。当其他软件与您的脚本冲突时,它将执行其他功能。
  2. 您说您在游戏中使用了它。也许您应该知道游戏会采取一些措施来防止游戏作弊。这样做的一个好方法是使用其他工具。(我以前使用AutoHotKey控制守望先锋。它可以正常运行,我想您可以尝试一下。)