【问题标题】:pynput can not listen keyboard input when use some program使用某些程序时,pynput 无法监听键盘输入
【发布时间】:2020-09-23 04:14:08
【问题描述】:

当我使用 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()

【问题讨论】:

    标签: python pynput


    【解决方案1】:

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

    如果让它工作很重要,我前段时间敲了一些基本代码,以使用管理员权限重新启动我的脚本。该文件是here,它的运行有点像这样:

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

    【讨论】:

    • 在我使用console.elevate之前,我应该导入哪个包?
    • 这是我作为链接添加的文件。它可能不是很强大,但对我来说效果很好。
    • 我使用具有管理员权限的 cmd 来运行我的脚本,它运行良好。感谢您的帮助。
    猜你喜欢
    • 2021-02-11
    • 2022-01-02
    • 2020-12-15
    • 2020-05-24
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多