| Linux程序设计入门 - termios/keymap/terminal programming |
荐 |
| Linux程序设计入门 - termios/keymap/terminal programming |
|
| |
|
int tcgetattr (int fd, struct termios *termios_p); int tcsetattr (int fd, int optional_actions,const struct termios *termios_p); keymap 我写了一个小程序来专门处理Linux上的keymap,keymap.h及keymap.c。 在Linux Terminal上,如果您想要设定某些按键返回特定值,您会需要用到以 下这些技巧。 设定keymap #include <linux/kd.h> #include <linux/keyboard.h> void setkeymap(void) { struct kbentry KEYMAP; KEYMAP.kb_table=STATE; KEYMAP.kb_index=SCANCODE; KEYMAP.kb_value=VALUE; ioctl(console,KDSKBENT,&KEYMAP); } STATE为状态键组合 /usr/include/linux/keyboard.h中 #define KG_SHIFT 0 #define KG_CTRL 2 #define KG_ALT 3 #define KG_ALTGR 1 #define KG_SHIFTL 4 #define KG_SHIFTR 5 #define KG_CTRLL 6 #define KG_CTRLR 7 #define KG_CAPSSHIFT 8 使用方式如: #define KST_CTRL (1<<KG_CTRL) #define KST_ALT (1<<KG_ALT) #define KST_SHIFT (1<<KG_SHIFT) #define KST_CTRL_ALT (KST_CTRL|KST_ALT) #define KST_ALT_SHIFT (KST_ALT|KST_SHIFT) SCANCODE为键盘扫描码 #define SCAN_ESC 0x01 #define SCAN_1 0x02 #define SCAN_2 0x03 #define SCAN_3 0x04 #define SCAN_4 0x05 #define SCAN_5 0x06 #define SCAN_6 0x07 #define SCAN_7 0x08 #define SCAN_8 0x09 #define SCAN_9 0x0A #define SCAN_0 0x0B #define SCAN_MINUS 0x0C #define SCAN_PLUS 0x0D #define SCAN_BACK 0x0E #define SCAN_TAB 0x0F #define SCAN_Q 0x10 #define SCAN_W 0x11 #define SCAN_E 0x12 #define SCAN_R 0x13 #define SCAN_T 0x14 #define SCAN_Y 0x15 #define SCAN_U 0x16 #define SCAN_I 0x17 #define SCAN_O 0x18 #define SCAN_P 0x19 #define SCAN_LTQUOTE 0x1A #define SCAN_RTQUOTE 0x1B #define SCAN_ENTER 0x1C #define SCAN_CTRL 0x1D #define SCAN_A 0x1E #define SCAN_S 0x1F #define SCAN_D 0x20 #define SCAN_F 0x21 #define SCAN_G 0x22 #define SCAN_H 0x23 #define SCAN_J 0x24 #define SCAN_K 0x25 #define SCAN_L 0x26 #define SCAN_SPLIT 0x27 #define SCAN_QUOTE 0x28 #define SCAN_MARK 0x29 #define SCAN_LSHIFT 0x2A #define SCAN_STAND 0x2B #define SCAN_Z 0x2C #define SCAN_X 0x2D #define SCAN_C 0x2E #define SCAN_V 0x2F #define SCAN_B 0x30 #define SCAN_N 0x31 #define SCAN_M 0x32 #define SCAN_LSQUOTE 0x33 #define SCAN_RSQUOTE 0x34 #define SCAN_QUESTION 0x35 #define SCAN_R[1] [2] [3] 下一页
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-1-2 3:22:21 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: Linux程序设计入门 - SVGALIB
下一个教程: Linux程序设计入门 - zlib的运用 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |