複製鏈接
請複製以下鏈接發送給好友

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鍵狀態
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函數判斷是否按鍵