bioskey

bioskey

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

相關詞條

熱門詞條

聯絡我們