gpt4 book ai didi

python - 如何在 Python 中获取键码

转载 作者:太空狗 更新时间:2023-10-29 21:12:54 26 4
gpt4 key购买 nike

我必须知道按下了什么键,但不需要字符的代码,我想知道什么时候有人按下“A”键,即使获得的键是“a”或“A”,等等所有其他键。

我不能使用 PyGame 或任何其他库(包括 Tkinter)。只有 Python 标准库。而且这必须在终端而不是图形界面中完成。

不需要字符代码。我需要知道关键代码。

例如:

ord('a') != ord('A')                      # 97 != 65
someFunction('a') == someFunction('A') # a_code == A_code

最佳答案

参见 tty标准模块。它允许使用 tty.setcbreak(sys.stdin) 从默认的面向行(熟)模式切换到面向字符(cbreak)模式。 .从 sys.stdin 读取单个字符将导致下一个按下的键盘键(如果它生成代码):

import sys
import tty
tty.setcbreak(sys.stdin)
while True:
print ord(sys.stdin.read(1))

注意:解决方案仅适用于 Unix(包括 Linux)。

编辑:在 Windows 上尝试 msvcrt.getche()/getwche() ./我无处可试...


编辑 2:通过 ctypes.windll 使用 win32 低级控制台 API (参见 example at SO )具有 ReadConsoleInput 功能。您应该过滤掉按键 - e.EventType==KEY_EVENT 并查找 e.Event.KeyEvent.wVirtualKeyCode 值。可以在 http://www.benryves.com/tutorials/?t=winconsole&c=4 找到应用程序示例(不是在 Python 中,只是为了获得一个想法) .

关于python - 如何在 Python 中获取键码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/575650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com