当前位置: 代码迷 >> C语言 >> [求助]键盘按键测试?
  详细解决方案

[求助]键盘按键测试?

热度:663   发布时间:2007-11-06 14:02:36.0
[求助]键盘按键测试?
我想知道怎么测试是按个的那个键??
我好像记得要用bioskey()这个函数样,但我现在用不来了,那位大哥帮帮一下呀??如果是我记错了的话,望请告诉一下要用那一个函数来完成??
搜索更多相关的解决方案: 键盘  bioskey  函数  

----------------解决方案--------------------------------------------------------
http://www.80diy.com/home/20020611/13/794526
int bioskey(int cmd)本函数用来执行各种键盘操作,由cmd确定操作。
cmd可为以下值:
0 返回敲键盘上的下一个键。若低8位为非0,即为ASCII字符;若低8位为0,
则返回扩充了的键盘代码。
1 测试键盘是否可用于读。返回0表示没有键可用;否则返回下一次敲键之值。
敲键本身一直保持由下次调用具的cmd值为0的bioskey所返回的值。
2 返回当前的键盘状态,由返回整数的每一个位表示,见下表:
┌──┬───────────┬───────────┐
│ 位 │为0时意义 │为1时意义 │
├──┼───────────┼───────────┤
│ 7 │插入状态 │改写状态 │
│ 6 │大写状态 │小写状态 │
│ 5 │数字状态,NumLock灯亮 │光标状态,NumLock灯熄 │
│ 4 │ScrollLock灯亮 │ScrollLock灯熄 │
│ 3 │Alt按下 │Alt未按下 │
│ 2 │Ctrl按下 │Ctrl未按下 │
│ 1 │左Shift按下 │左Shift未按下 │
│ 0 │右Shift按下 │右Shift未按下 │
└──┴───────────┴───────────┘

http://baike.baidu.com/view/653950.htm
----------------解决方案--------------------------------------------------------
函数原型 int bioskey(int cmd)
用途:获取键盘值
cmd=0 返回一个键盘值,如无键盘按下,一直等.
cmd=1 查询键盘是否按下.
0-无键按下,非0-有键按下
cmd=2 返回控制键状态,返回值保存在低8位中
B0 右边的shift键按下 B5 已打开Scroll Lock
B1 左边的shift键按下 B6 已打开Num Lock
B3 Ctrl键按下 B7 已打开Caps Lock
B4 Alt键按下 B8 已打开Insert
楼主可以自己写个测试一下
----------------解决方案--------------------------------------------------------
main()
{
int key;
key = bioskey(0);
printf(key);
}


我是这样写的,怎么不给我显示按键值呢??可以帮我改一下嘛??
----------------解决方案--------------------------------------------------------

bioskey() 这个函数在哪个文件中声明的啊? #include <??????>
/* DEV-C++ 有没有这个函数啊 */

[此贴子已经被作者于2007-11-6 17:54:41编辑过]


----------------解决方案--------------------------------------------------------
bios.h
----------------解决方案--------------------------------------------------------
printf(key);????????????
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<bios.h>
#include<graphics.h>
#define UP 0x4800/*这里是定义按键码,这个可以在资料中查到*/
#define DOWN 0x5000
#define RIGHT 0x4d00
#define LEFT 0x4b00
#define ESC 0x011b
init(){
int gd=DETECT,gm;
initgraph(&gd,&gm,"c\tc");
cleardevice();
}/*初始化图形驱动*/
void main(){
int key;
clrscr();
init();
setbkcolor(RED);/*置背景色为红色*/
printf("Key the ESC key to exit.\n");
while(1){
printf("Please input the way key:");
switch(bioskey(0)){
case UP: printf("You key the up key!\n");break;
case DOWN: printf("You key the down key!\n");break;
case LEFT: printf("You key the left key!\n");break;
case RIGHT: printf("You key the right key!\n");break;
case ESC:exit(0);
default: printf("You don't key the way key!\n");break;
}
}
getch();
}
----------------解决方案--------------------------------------------------------
  相关解决方案