當前位置:編程學習大全網 - 編程語言 - 用c語言模仿windows界面和接收esc之類的功能鍵的問題

用c語言模仿windows界面和接收esc之類的功能鍵的問題

#include<stdio.h>

#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表示松開。

  • 上一篇:四年級上冊壹單元思維導圖怎麽做
  • 下一篇:第二章java基本編程問題
  • copyright 2024編程學習大全網