-
bioskey
鎖定
bioskey是C語言中的一個函數,其功能是:直接使用BIOS服務的鍵盤接口。
- 外文名
- bioskey
- 函數原型
- int bioskey (int cmd)
- 功 能
- 直接使用BIOS服務的鍵盤接口
- 定 義
- 是C語言中的一個函數
bioskey函數説明
函數原型:int bioskey (int cmd)
説明:bioskey的函數原型在bios.h中
bioskey完成直接鍵盤操作,cmd的值決定執行什麼操作。
cmd = 0:
當cmd是0,bioskey返回下一個在鍵盤鍵入的值(它將等待到按下一個鍵)。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字符的ASCII碼,高8位存放該鍵的掃描碼;對於特殊鍵(如方向鍵、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鍵狀態
2 Ctrl鍵狀態
3 Alt鍵狀態
4 ScrollLock鍵狀態
5 NumLock鍵狀態
6 CapsLock鍵狀態
7 Insert鍵狀態
字節位為1表示該鍵被按下,為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; /*function1returns0untilakeyispressed*/ while(bioskey(1)==0); /*function0returnsthekeythatiswaiting*/ key=bioskey(0); /*usefunction2todetermineifshiftkeyswereused*/ 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("]"); } /*printoutthecharacterread*/ if((key&0xFF)) printf("'%c'\n",key); else printf("%#02x\n",key); return0; }
注:此函數是TC編譯環境下的函數,VC中無法使用。在VC裏面用_kbhit函數判斷是否按鍵