Python中如何检测哪些按键被按下

19

我需要知道当前按下了哪个键。我不是在寻找捕获某些特定键以触发事件或类似操作,

我想知道现在按下了哪些键,并显示它们的列表。

我还需要捕获像F1...F12、shift、alt、home、windows等特殊键。基本上键盘上的所有键都要。

如何在Python中实现这一点?如何捕获键盘事件?

相关

编辑

只是让您知道我不是在试图制作一个键盘记录器。我正在尝试制作一个诊断工具(我把水倒在笔记本电脑上,键盘有时会变得疯狂!!)

4个回答

6

感谢提供相关问题的链接。然而,那个键盘记录器对我来说有点过头了 :) - hasen
3
链接已失效。 - Avinash Raj

4

如果您不是太挑剔的话,最简单的方法就是引入GUI工具包,如pygame或wxPython。例如,运行wxPython演示,然后转到KeyEvents演示。


2

0
(来自pynput文档)
从英文翻译成中文。只返回翻译后的文本内容:

(来自pynput文档)

from pynput import keyboard

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

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

这段代码来自于pynput文档,看起来是有效的。我不确定如何将其作为变量获取,但它会在终端打印出按键信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接