在Python中,如何获取键盘按键输入?
当我按下键盘上的 print screen
按钮时,我想要触发一个事件,比如这样:
if keyboard-print screen:
print "5"
4 个回答
0
在Windows系统中,你可以使用msvcrt模块:
这是一个专门为Windows设计的标准扩展模块。它定义了一个叫kbhit()的函数,用来检查键盘上是否有按键被按下,还有一个叫getch()的函数,可以获取一个字符,但不会在屏幕上显示出来。
不过我不太确定它是否能处理这两个按键同时按下的情况。
0
Tkinter自带了按键事件的功能。
import Tkinter as tk
def keypress(event):
if event.keysym == 'Escape':
root.destroy()
x = event.char
if x == "w":
print "blaw blaw blaw"
elif x == "a":
print "blaha blaha blaha"
elif x == "s":
print "blash blash blash"
elif x == "d":
print "blad blad blad"
else:
print x
root = tk.Tk()
print "Press a key (Escape key to exit):"
root.bind_all('<Key>', keypress)
# don't show the tk window
root.withdraw()
root.mainloop()
1
请注意,tkinter这个解决方案在Mac上不太好用(至少在我的Mac上是这样)。我用Python 3.2.2和Python 2.7.2测试过。如果窗口被隐藏了,它就不会获得焦点,因此也无法感知任何键盘事件。