#include<conio.h>
#include<dos.h>
#include<bios.h>
#define ESC 283
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
void main()
{
int key;
while(key!=ESC)
{
printf("wait for keypress...\n");
sleep(1);
key = bioskey(0);
switch(key)
{
case ESC:printf("you have press ESC...\n");break;
case UP:printf("you have press UP...\n");break;
case DOWN:printf("you have press DOWN...\n");break;
case LEFT:printf("you have press LEFT...\n");break;
case RIGHT:printf("you have press RIGHT...\n");break;
default:break;
}
}
}
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鍵狀態
字節位為1表示該鍵被按下,為0表示松開。