这个是怎么出来的??

l_john2000 2006-11-30 04:02:50
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>
/* define Key Values /* 定义各键的bioskey(0)的按键返回值 */
#define Key_DOWN 0x5100
#define Key_UP 0x4900
#define Key_A 0x1e41
#define Key_a 0x1e61
#define Key_B 0x3042
#define Key_b 0x3062
#define Key_C 0x2e43
#define Key_c 0x2e63
#define Key_E 0x1245
#define Key_e 0x1265
#define Key_ENTER 0x1c0d
这一段中,类似0x4900的时怎么出来的??
...全文
224 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_john2000 2006-12-01
  • 打赏
  • 举报
回复
我查了一下,down的应该是50e0。为什么她是5100???
l_john2000 2006-12-01
  • 打赏
  • 举报
回复
是不是按下组合键的时候后两位恒为零??
l_john2000 2006-11-30
  • 打赏
  • 举报
回复
用bioskey()是不是可以得到键盘上所有键的键的编码???
jixingzhong 2006-11-30
  • 打赏
  • 举报
回复
可以查 键盘各个按键 的编码 ...
liuqiyc 2006-11-30
  • 打赏
  • 举报
回复
按一个键,用bioskey()得到键值,然后printf出来
lovesnow1314 2006-11-30
  • 打赏
  • 举报
回复
bioskey(0) 返回敲键盘上的下一个键。若低8位为非0,即为ASCII字符(注意是字符,而不是ASCII值);若低8位为0,则返回扩充了的键盘代码。
你所看到的应该是扩充了的键盘代码

bioskey(0)所得值规律如下:(注:16进制表示)
左Alt按下状态下(即同时按下,后两位恒为00)
按键盘布局,q 为 1000,w 为1100, 向右递增,p 为 1900(再右的键无效。下同)
a 为 1e00,s 为 1f00,(达最大)
d 为 2000,向右递增,l 为 2600
z 为 2c00, 向右递增,v 为 2f00(达最大)
b 为 3000,向右递增, m 为 3200

F1 为 6800, 向右递增,F10 为 7100,F11、F12无效

当Alt未按下时,后两位不为0,前两位即为按下键的代码
q 为 10**,直到Enter为 1c**
a 为 1e**,直到‘为 28**, `为29**
z 为 2c**,直到 /为 35**
myfriend023 2006-11-30
  • 打赏
  • 举报
回复
0x表示16进制
hailongchang 2006-11-30
  • 打赏
  • 举报
回复
定义各键的bioskey(0)的按键返回值

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧