如果是用 C 的话
可以使用 bioskey(2) 判断状态
2 查询当前移位状态.状态只有下列值相或得到:
第7位 0x80 Insert ON
第6位 0x40 CapsLock ON
第5位 0x20 NumLock ON
第4位 0x10 ScrollLock ON
第3位 0x08 Alt ON
第2位 0x04 Ctrl ON
第1位 0x02 左Shift ON
第0位 0x01 右Shift ON
程序例:
#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;
}