通过自己测试所有内容来弄清楚。找不到关于它的任何主题,所以我将解决方案留在这里。这可能不是唯一的,甚至不是最好的解决方案,但是它对我来说是可行的(在getch的限制内),总比没有好。
注意:keyDown()
仍然可以识别所有按键和实际按键的属性。
使用ord()
-function首先将getch()
int转换为整数(我想它们是虚拟键码,但不太确定),然后将结果与表示所需键的实际数字进行比较。另外,如果需要,我可以chr()
在返回的数字周围添加一个额外的数字,以便将其转换为字符。但是,我主要使用向下箭头,esc等,因此将它们转换为字符会很愚蠢。这是最终代码:
from msvcrt import getch
while True:
key = ord(getch())
if key == 27: #ESC
break
elif key == 13: #Enter
select()
elif key == 224: #Special keys (arrows, f keys, ins, del, etc.)
key = ord(getch())
if key == 80: #Down arrow
moveDown()
elif key == 72: #Up arrow
moveUp()
另外,如果其他人需要,您可以轻松地从google中找到键码,或者使用python并只需按以下键即可:
from msvcrt import getch
while True:
print(ord(getch()))