怎么从键盘接收按下来的控制键,并做相应的处理。

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

头文件:bios.h

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

实例:

以下给出tc3.0中的关于bioskey函数的例子,读一读会有好处的:

#include <stdio.h>

#include <bios.h>

#include <ctype.h>

#define RIGHT 0x01

#define LEFT 0x02

#define CTRL 0x04

#define ALT 0x08

int main(void)

{

int key, modifiers;

/* function 1 returns 0 until a key is pressed */

while (bioskey(1) == 0);

/* function 0 returns the key that is waiting */

key = bioskey(0);

/* use function 2 to determine if shift keys were used */

modifiers = bioskey(2);

if (modifiers)

{

printf("[");

if (modifiers & RIGHT) printf("RIGHT");

if (modifiers & LEFT) printf("LEFT");

if (modifiers & CTRL) printf("CTRL");

if (modifiers & ALT) printf("ALT");

printf("]");

}

/* print out the character read */

if (isalnum(key & 0xFF))

printf("'%c'\n", key);

else

printf("%#02x\n", key);

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航