<转>键盘扫描码
原文链接:http://www.cnblogs.com/wqw/archive/2009/08/30/1556618.html
//以下是一个检测按键扫描码的程序 #i nclude <bios.h>
#i nclude <stdlib.h>
#i nclude <stdio.h>
#define Esc 0x11b
void main(void)
{
int key;
while(!kbhit())/*kbhit()表示有键盘按下*/
{
key=bioskey();/*接收键盘*/
printf("0x%x"n",key);/*输出扫描码的十六进制形式*/
if(key==Esc)
break;
}
getch();
}
************************************************************************************
(注:当按下“普通键”时,它的低8位数存放该字符的ASCII码。对于特殊键,低8位为0。特殊键包括箭头键、功能键等。高8位字节存放该键的扫描码。) 扫描码 键
0x011b ESC
0x3b00 F1
0x3c00 F2
0x3d00 F3
0x3e00 F4
0x3f00 F5
0x4000 F6
0x4100 F7
0x4200 F8
0x4300 F9
0x4400 F10
主键盘区: 0x2960 ~
0x0231
0x0332
0x0433
0x0534
0x0635
0x0736
0x0837
0x0938
0x0a39
0x0b30
0x0c2d -
0x0d3d =
0x2b5c "
0x0e08 退格键
0x0f09 Tab
0x1071 q
0x1177 w
0x1265 e
0x1372 r
0x1474 t
0x1579 y
0x1675 u
0x1769 i
0x186f o
0x1970 p
0x1a5b [
0x1b5d ]
0x1e61 a
0x1f73 s
0x2064 d
0x2166 f
0x2267 g
0x2368 h
0x246a j
0x256b k
0x266c l
0x273b ;
0x2827 '
0x1c0d 回车
0x2c7a z
0x2d78 x
0x2e63 c
0x2f76 v
0x3062 b
0x316e n
0x326d m
0x332c ,
0x342e .
0x352f /
0x3920 空格键
右边数字键盘: 0x5200 Insert
0x4700 Home
0x4900 Page UP
0x5300 Delete
0x4f00 End
0x5100 PageDown
0x4800 上箭头
0x4b00 左箭头
0x5000 下箭头
0x4d00 右箭头
0x352f /
0x372a *
0x4a2d - (注意,这是数字键盘的)
0x4737
0x4838
0x4939
0x4b34
0x4c35
0x4d36
0x4e2b +
0x4f31
0x5032
0x5133
0x5230
0x532e Del //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /************键盘上各键的扫描码以及组合键的扫描码***************/
#define KEY_L1 0x4F /*小写键盘上的键*/
#define KEY_L2 0x50
#define KEY_L3 0x51
#define KEY_L4 0x4B
#define KEY_L6 0x4D
#define KEY_L7 0x47
#define KEY_L8 0x48
#define KEY_L9 0x49
#define KEY_ADD 0x2B
#define KEY_SUB 0x2D
#define KEY_LEFT 75 /*左箭头*/
#define KEY_RIGHT 77 /*右箭头*/
#define KEY_UP 72 /*上箭头*/
#define KEY_DOWN 80 /*下箭头*/
#define KEY_F1 59
#define KEY_F2 60
#define KEY_F3 61
#define KEY_F4 62
#define KEY_F5 63
#define KEY_F6 64
#define KEY_F7 65
#define KEY_F8 66
#define KEY_F9 67
#define KEY_F10 68
#define KEY_INSERT 82
#define KEY_HOME 71
#define KEY_PAGEUP 73
#define KEY_PAGEDOWN 81
#define KEY_DEL 83
#define KEY_END 79 #define KEY_DASH 12 /* _- */
#define KEY_EQUAL 13 /* += */
#define KEY_LBRACKET 26 /* {[ */
#define KEY_RBRACKET 27 /* }] */
#define KEY_SEMICOLON 39 /* :; */
#define KEY_RQUOTE 40 /* ' */
#define KEY_LQUOTE 41 /* ~` */
#define KEY_PERIOD 52 /* >. */
#define KEY_COMMA 51 /* <, */
#define KEY_SLASH 53 /* ?/ */
#define KEY_BACKSLASH 43 /* |" */
#define KEY_ENTER 28 /*回车键*/
#define KEY_BACKSPACE 14 /*退格键*/
#define KEY_SPACE 57 /*空格键*/
#define KEY_TAB 15
#define KEY_ESC 1
#define KEY_Q 16
#define KEY_W 17
#define KEY_E 18
#define KEY_R 19
#define KEY_T 20
#define KEY_Y 21
#define KEY_U 22
#define KEY_I 23
#define KEY_O 24
#define KEY_P 25
#define KEY_A 30
#define KEY_S 31
#define KEY_D 32
#define KEY_F 33
#define KEY_G 34
#define KEY_H 35
#define KEY_J 36
#define KEY_K 37
#define KEY_L 38
#define KEY_Z 44
#define KEY_X 45
#define KEY_C 46
#define KEY_V 47
#define KEY_B 48
#define KEY_N 49
#define KEY_M 50
#define KEY_1 2
#define KEY_2 3
#define KEY_3 4
#define KEY_4 5
#define KEY_5 6
#define KEY_6 7
#define KEY_7 8
#define KEY_8 9
#define KEY_9 10
#define KEY_0 11 /+++++++++++++++++++++++++CTR+各键扫描码+++++++++++++++++++++++++/
#define KEY_F1 0x5E
#define KEY_F2 0x5F
#define KEY_F3 0x60
#define KEY_F4 0x61
#define KEY_F5 0x62
#define KEY_F6 0x63
#define KEY_F7 0x64
#define KEY_F8 0x65
#define KEY_F9 0x66
#define KEY_F10 0x67
#define KEY_2 0x03
#define KEY_6 0x1E
#define KEY_Q 0x11
#define KEY_W 0x17
#define KEY_E 0x05
#define KEY_R 0x12
#define KEY_T 0x14
#define KEY_Y 0x19
#define KEY_U 0x15
#define KEY_I 0x09
#define KEY_O 0x0F
#define KEY_P 0x10
#define KEY_LBRACKET 0x1B /* {[ */
#define KEY_RBRACKET 0x1D /* }] */
#define KEY_A 0x01
#define KEY_S 0x13
#define KEY_D 0x04
#define KEY_F 0x06
#define KEY_G 0x07
#define KEY_H 0x08
#define KEY_J 0x0A
#define KEY_K 0x0B
#define KEY_L 0x0C
#define KEY_Z 0x1A
#define KEY_X 0x18
#define KEY_C 0x03
#define KEY_V 0x16
#define KEY_B 0x02
#define KEY_N 0x0E
#define KEY_M 0x0D
#define KEY_SPACE 0x20
#define KEY_BACKSPACE 0x7F
#define KEY_ENTER 0x0A
#define KEY_BACKSLASH 0x1C /* |" */
#define KEY_L1 0x75 /*小写键盘上的键*/
#define KEY_L3 0x76
#define KEY_L4 0x73
#define KEY_L6 0x74
#define KEY_L7 0x77
#define KEY_L9 0x84 /+++++++++++++++++++++++++SHIFT+各键扫描码+++++++++++++++++++++++++/
#define KEY_LQUOTE 0x7E /* ~` */
#define KEY_1 0x21
#define KEY_2 0x40
#define KEY_3 0x23
#define KEY_4 0x24
#define KEY_5 0x25
#define KEY_6 0x5E
#define KEY_7 0x26
#define KEY_8 0x2A
#define KEY_9 0x28
#define KEY_0 0x29
#define KEY_DASH 0x5F /* _- */
#define KEY_EQUAL 0x2B /* += */
#define KEY_BACKSPACE 0x08
#define KEY_Q 0x51
#define KEY_W 0x57
#define KEY_E 0x45
#define KEY_R 0x52
#define KEY_T 0x54
#define KEY_Y 0x59
#define KEY_U 0x55
#define KEY_I 0x49
#define KEY_O 0x4F
#define KEY_P 0x50
#define KEY_LBRACKET 0x7B /* {[ */
#define KEY_RBRACKET 0x7D /* }] */
#define KEY_ENTER 0x0D
#define KEY_A 0x41
#define KEY_S 0x53
#define KEY_D 0x44
#define KEY_F 0x46
#define KEY_G 0x47
#define KEY_H 0x48
#define KEY_J 0x4A
#define KEY_ENTER 0x1c
#define KEY_SPACE 0x39
#define KEY_UP 0x48
#define KEY_LEFT 0x4b
#define KEY_RIGHT 0x4d
#define KEY_DOWN 0x50
<转>键盘扫描码的更多相关文章
- c语言-键盘扫描码
定义: 键盘上的每一个键都有两个唯一的数值进行标志.为什么要用两个数值而不是一个数值呢?这是因为一个键可以被按下,也可以被释放.当一个键按下时,它们产生一个唯一的数值,当一个键被释放时,它也会产生一个 ...
- PS2键盘扫描码:通码与断码
键盘扫描码(实用于标准PC的101.102和104 键的键盘),按下发送通码,弹起发送断码. 说明: 第一类按键,通码为1字节,断码为 0xF0+通码 形式.如A键,其通码为 0x1C,断码为 0xF ...
- 键盘--扫描码--ASCII码--显示器上的字符
在上一篇,我讲了键盘操作会产生扫描码以及如何解析Pause键和Print Screen键的扫描码. 在这一篇,我会说清楚"键盘上的输入为什么会出现在显示器上". 极简版 我们敲击键 ...
- 键盘上各键对应的ASCII码与扫描码
键盘上各键对应的ASCII码与扫描码 vbKeyLButton 0x1 鼠标左键vbKeyRButton 0x2 鼠标右键vbKeyCancel 0x3 CANCEL 键vbKeyMButton 0x ...
- showkey - 检查来自键盘的扫描码和键盘码
览 (SYNOPSIS) showkey [ -[hVskm] | --help | --version | --scancodes | --keycodes | --keymap ] [ -t N ...
- 4x4矩阵键盘扫描
4x4矩阵键盘扫描 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架 ...
- ATmega8仿真——键盘扫描的学习
1.按键的使用特点 按键的应用主要是在按键闭合时改变电路的电平,但是一般情况下按键的开关都是机械弹性触点开关,即利用触点的接触和分离来实现电路的通断,所以在按键按下和释放时往往会产生抖动干扰. 消除抖 ...
- 4X4矩阵键盘扫描程序
4X4矩阵键盘扫描: 1. 4根行线的GIO均设为Output,根列线的GIO均设为Input: 2. 4根行线的GIO分别置为0111.1011.1101.1110,读逐一读取列线GIO的值,可确定 ...
- Win10 IoT C#开发 6 - 4x4矩阵键盘扫描
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...
随机推荐
- Linux初探
终于心血来潮装了Ubuntu,向着正式程序员迈出了重要一步.不得不说Linux真是一个磨人的小妖精,这篇随笔记录了一些我遇到的问题和解决方法. 1.Ubuntu安装 不知道听谁说的Linux难装,一不 ...
- android最佳实践之设备兼容性
由于不同手机的尺寸大小,屏幕分辨率可能存在差异.在开发应用的时候,你或许遇到过这些的问题: 1, 为什么图片在另外的手机上显示的时候变小了,又或是缩小了? 2, 为什么在layout中定义好的格局在另 ...
- 自己留存:mysql full text 支持中文的一个设定
innodb_ft_min_token_size=1 ft_min_word_len=1
- margin的理解
1.盒子模型 在进行网页设计的时候,我们使用的是盒子模型,其内容如下: 整个网页就是大盒子套小盒子,小盒子又套更小的盒子来实现的.但是在做网页设计时总是搞不清margin和padding的使用方式,在 ...
- EntityFramework_MVC4中EF5 新手入门教程之五 ---5.通过 Entity Framework 读取相关数据
在前面的教程中,您完成School数据模型.在本教程中,您会读取和显示相关的数据 — — 那就是,实体框架将加载到导航属性的数据. 下面的插图显示页面,您将完成的工作. 延迟. 预先,和显式加载的相关 ...
- Moqui学习Day4
添加一个新建表单 添加一个按钮来弹出新建表单,并创建一个转换来处理输入数据操作. 在FindTutorial.xml文件中添加一个转换. <!--新增 列表 --> <transit ...
- iOS -- 生成有logo的二维码
- (void)createLogoImage { NSArray *filter = [CIFilter filterNamesInCategory:kCICategoryBuiltIn]; NSL ...
- Java设计模式-代理模式(Proxy)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你 ...
- .map文件的作用以及在chorme下会报错找不到jquery-1.10.2.min.map文件,404 的原因
source map文件是js文件压缩后,文件的变量名替换对应.变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下. 比如压缩后原变量是map,压缩后通过变量替换规则可能会 ...
- SourceTree&Git部分名词解释
SourceTree&Git部分名词解释 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓 ...