Python 2.7
我试图在使用msvcrt模块中的getch()函数编写的应用程序中捕捉按键。有些很简单,enter是13,backspace是8,.>;是46等等。有些键,比如Home,我无法计算。在
从getch()的docstring中:
如果按下的键是特殊功能键,则返回“000”或“xe0”;下一次调用将返回键码
我尝试过测试返回值“000”或“xe0”,但没有返回。结果是我得到了224个返回值,在下一次调用getch()时,我得到了另一个代码,所以对于Home,它是71。其他的特殊键也是这样的,End是22479,Insert是22482,Page Up是22473等等。我无法解释这种行为;我尝试过将这两个值相加,然后去掉两个值的幂函数(即224+73-256),但它没有产生任何有用的结果。在
有没有人了解这种行为和/或有人对如何捕获这些密钥有任何建议(我不想硬编码224+x模式值,因为我不确定这些值是否与其他用户一致)?在
谢谢。在
编辑: 如果有人想试试的话
import msvcrt
while True:
key = msvcrt.getch()
print ord(key)
getch()
返回的上述值不是'xe0'
,而是'\xe0'
-注意反斜杠表示escape sequence。224
是该字节的十进制值:所以在你的情况下,这应该是有效的:
^{pr2}$相关问题 更多 >
编程相关推荐