linux - 使用 ncurses 捕获特殊字符

标签 linux ncurses

我目前正在开发一个项目,用于映射每个可能的键盘和鼠标中断。 该映射是在 Linux 环境中使用 ncurses 库完成的。

问题是如何捕获以下键盘按键:

主页 结尾 向上/向下翻页

当按下这些键时,终端本身会捕获它们,而程序本身看不到它们(花了几个小时的配置,但尚未找到解决方案)

暂停/中断(在标准键盘中向上翻页) 屏幕截图 数字锁定键(0 至 9 和 < . >)。 Windows 按钮

以下内容根本没有得到任何响应,无论是来自终端还是程序。

最佳答案

简短:您无法使用 ncurses 捕获所有

长:常见的问题在于未能正确初始化:

  • 您可能忘记调用keypad(stdscr,TRUE)(或者您可能与wgetch一起使用的任何窗口)。这将允许应用程序读取终端描述中定义的任何键作为整数。

  • 如果它不在终端描述中,(n)curses 将返回组成从键盘发送的键的字节序列。

这是两个可能的问题。终端不会发送其他键(或键组合)(以形成不同键盘序列的方式)。例如,将Control键与其他键一起使用可能改变键盘发送的顺序,也可能不会。要查看这一点,请使用带有逗号、句号的控制键或键盘该区域中的其他标点符号键进行实验。

关于linux - 使用 ncurses 捕获特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706738/

相关文章:

c - 在 ncurses 中打印盲文字符

c - 禁用 ncurses 菜单中的菜单标记

linux - Mac 上的 Chrome 操作系统开发

linux - BASH-计算同一行中某些字段的平均值

c++ - 为 ARM 交叉编译 ncurses 5.9 - 找不到表单库

c++ - terminfo 参数化字符串 %d 编码行为

c++ - SCons:如何让库获取 CPPPATH 选项

c++ - 能够在没有 pthreads 的情况下链接并且程序仍然运行?

linux - 创建颠覆分支

c - NCurses 初始化而不清除屏幕