我目前正在开发一个项目,用于映射每个可能的键盘和鼠标中断。 该映射是在 Linux 环境中使用 ncurses 库完成的。
问题是如何捕获以下键盘按键:
主页 结尾 向上/向下翻页
当按下这些键时,终端本身会捕获它们,而程序本身看不到它们(花了几个小时的配置,但尚未找到解决方案)
暂停/中断(在标准键盘中向上翻页) 屏幕截图 数字锁定键(0 至 9 和 < . >)。 Windows 按钮
以下内容根本没有得到任何响应,无论是来自终端还是程序。
最佳答案
简短:您无法使用 ncurses 捕获所有键
长:常见的问题在于未能正确初始化:
您可能忘记调用
keypad(stdscr,TRUE)
(或者您可能与wgetch
一起使用的任何窗口)。这将允许应用程序读取终端描述中定义的任何键作为整数。如果它不在终端描述中,(n)curses 将返回组成从键盘发送的键的字节序列。
这是两个可能的问题。终端不会发送其他键(或键组合)(以形成不同键盘序列的方式)。例如,将Control键与其他键一起使用可能改变键盘发送的顺序,也可能不会。要查看这一点,请使用带有逗号、句号的控制键或键盘该区域中的其他标点符号键进行实验。
关于linux - 使用 ncurses 捕获特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706738/