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键状态
函数原型: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 ...
...
#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 ...
...