bioskey是C語言中的一個函式,其功能是:直接使用BIOS服務的鍵盤接口。
基本介紹
- 外文名:bioskey
- 函式原型:int bioskey (int cmd)
- 功能:直接使用BIOS服務的鍵盤接口
- 定義:是C語言中的一個函式
函式說明,函式例子,
函式說明
函式原型: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表示鬆開。
函式例子
程式例:
#include<stdio.h>#include<bios.h>#include<ctype.h>#defineRIGHT0x01#defineLEFT0x02#defineCTRL0x04#defineALT0x08intmain(void){intkey,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(isalnum(key&0xFF))printf("'%c'\n",key);elseprintf("%#02x\n",key);return0;}
註:此函式是TC編譯環境下的函式,VC中無法使用。在VC裡面用_kbhit函式判斷是否按鍵