使用某些程序时,Pynput无法监听键盘输入

时间:2020-06-04 08:32:44

标签: python pynput

当我使用Chrome时,Pynput效果很好,它告诉我按下了哪个键。 但是当我使用其他程序,例如Taskmgr.exe,游戏时,它失败了!我该怎么办? 我的代码:

from pynput import keyboard

last_event_time=time.time()
def on_press(key):
    global last_event_time
    last_event_time=time.time()
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    global last_event_time
    last_event_time=time.time()
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False
listener2 = keyboard.Listener(
    on_press=on_press)
listener2.start()

1 个答案:

答案 0 :(得分:0)

在找到原因之前,我在自己的代码中确实遇到了这个问题一年。如果程序以提升的身份启动,则非提升的程序(例如您的脚本)将无法读取键盘。

如果让它正常工作很重要,我不久前敲了一些基本代码,以使用管理员权限重新启动我的脚本。该文件为here,其运行方式如下:

if __name__ == '__main__':
    console.elevate(visible=not start_minimised)
    # Do your main code here