关闭

bioskey函数介绍

标签: cmdinsert
3790人阅读 评论(2) 收藏 举报
分类:
bioskey函数介绍
函数原型:int bioskey (int cmd)
说明:bioskey()的函数原型在bios.h中
bioskey()完成直接键盘操作,cmd的值决定执行什么操作。
cmd = 0:
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。
cmd = 1:
当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。
cmd = 2:
当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中。
字节位 含义
0 右边Shift键状态
1 左边Shift键状态
3 Ctrl键状态
4 Alt键状态
5 ScrollLock键状态
6 NumLock键状态
7 CapsLock键状态
8 Insert键状态
#include <bios.h>
#include <stdio.h>

main(){
 int key;
 for(;;){
 key=bioskey(0);
 if (key==0x11b) /*按了ESC键*/
 break;
 else
 printf("0x%x/n",key); /*打印出各键对对应的键值*/
 }
}

上面的代码可以得到整个键盘对应各键的码
为了使到没有输入时程序不至于暂停,
用bioskey(1)检测是否按下键盘

可以这样:

if (bioskey(1)) /*检测是否按下键盘*/
 key = bioskey(0) /*按下的话读入一个码*/
else ...

switch(key){
 case 0x11b: /*按下了ESC*/
 ...
 case ...
 ...
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33368次
    • 积分:420
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:10篇
    • 译文:0篇
    • 评论:4条
    文章分类
    文章存档
    最新评论