getch.c

来自「适合KS8695X」· C语言 代码 · 共 502 行 · 第 1/2 页

C
502
字号
/****************************************************************************
*
*                   SciTech OS Portability Manager Library
*
*  ========================================================================
*
*    The contents of this file are subject to the SciTech MGL Public
*    License Version 1.0 (the "License"); you may not use this file
*    except in compliance with the License. You may obtain a copy of
*    the License at http://www.scitechsoft.com/mgl-license.txt
*
*    Software distributed under the License is distributed on an
*    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
*    implied. See the License for the specific language governing
*    rights and limitations under the License.
*
*    The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.
*
*    The Initial Developer of the Original Code is SciTech Software, Inc.
*    All Rights Reserved.
*
*  ========================================================================
*
* Language:     ANSI C
* Environment:  Any
*
* Description:  Test program to test out the cross platform event handling
*               library.
*
****************************************************************************/

#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "pmapi.h"
#include "event.h"

/* Translation table for key codes */

typedef struct {
    int     code;
    char    *name;
    } KeyEntry;

KeyEntry ASCIICodes[] = {
    {ASCII_ctrlA            ,"ASCII_ctrlA"},
    {ASCII_ctrlB            ,"ASCII_ctrlB"},
    {ASCII_ctrlC            ,"ASCII_ctrlC"},
    {ASCII_ctrlD            ,"ASCII_ctrlD"},
    {ASCII_ctrlE            ,"ASCII_ctrlE"},
    {ASCII_ctrlF            ,"ASCII_ctrlF"},
    {ASCII_ctrlG            ,"ASCII_ctrlG"},
    {ASCII_backspace        ,"ASCII_backspace"},
    {ASCII_ctrlH            ,"ASCII_ctrlH"},
    {ASCII_tab              ,"ASCII_tab"},
    {ASCII_ctrlI            ,"ASCII_ctrlI"},
    {ASCII_ctrlJ            ,"ASCII_ctrlJ"},
    {ASCII_ctrlK            ,"ASCII_ctrlK"},
    {ASCII_ctrlL            ,"ASCII_ctrlL"},
    {ASCII_enter            ,"ASCII_enter"},
    {ASCII_ctrlM            ,"ASCII_ctrlM"},
    {ASCII_ctrlN            ,"ASCII_ctrlN"},
    {ASCII_ctrlO            ,"ASCII_ctrlO"},
    {ASCII_ctrlP            ,"ASCII_ctrlP"},
    {ASCII_ctrlQ            ,"ASCII_ctrlQ"},
    {ASCII_ctrlR            ,"ASCII_ctrlR"},
    {ASCII_ctrlS            ,"ASCII_ctrlS"},
    {ASCII_ctrlT            ,"ASCII_ctrlT"},
    {ASCII_ctrlU            ,"ASCII_ctrlU"},
    {ASCII_ctrlV            ,"ASCII_ctrlV"},
    {ASCII_ctrlW            ,"ASCII_ctrlW"},
    {ASCII_ctrlX            ,"ASCII_ctrlX"},
    {ASCII_ctrlY            ,"ASCII_ctrlY"},
    {ASCII_ctrlZ            ,"ASCII_ctrlZ"},
    {ASCII_esc              ,"ASCII_esc"},
    {ASCII_space            ,"ASCII_space"},
    {ASCII_exclamation      ,"ASCII_exclamation"},
    {ASCII_quote            ,"ASCII_quote"},
    {ASCII_pound            ,"ASCII_pound"},
    {ASCII_dollar           ,"ASCII_dollar"},
    {ASCII_percent          ,"ASCII_percent"},
    {ASCII_ampersand        ,"ASCII_ampersand"},
    {ASCII_apostrophe       ,"ASCII_apostrophe"},
    {ASCII_leftBrace        ,"ASCII_leftBrace"},
    {ASCII_rightBrace       ,"ASCII_rightBrace"},
    {ASCII_times            ,"ASCII_times"},
    {ASCII_plus             ,"ASCII_plus"},
    {ASCII_comma            ,"ASCII_comma"},
    {ASCII_minus            ,"ASCII_minus"},
    {ASCII_period           ,"ASCII_period"},
    {ASCII_divide           ,"ASCII_divide"},
    {ASCII_0                ,"ASCII_0"},
    {ASCII_1                ,"ASCII_1"},
    {ASCII_2                ,"ASCII_2"},
    {ASCII_3                ,"ASCII_3"},
    {ASCII_4                ,"ASCII_4"},
    {ASCII_5                ,"ASCII_5"},
    {ASCII_6                ,"ASCII_6"},
    {ASCII_7                ,"ASCII_7"},
    {ASCII_8                ,"ASCII_8"},
    {ASCII_9                ,"ASCII_9"},
    {ASCII_colon            ,"ASCII_colon"},
    {ASCII_semicolon        ,"ASCII_semicolon"},
    {ASCII_lessThan         ,"ASCII_lessThan"},
    {ASCII_equals           ,"ASCII_equals"},
    {ASCII_greaterThan      ,"ASCII_greaterThan"},
    {ASCII_question         ,"ASCII_question"},
    {ASCII_at               ,"ASCII_at"},
    {ASCII_A                ,"ASCII_A"},
    {ASCII_B                ,"ASCII_B"},
    {ASCII_C                ,"ASCII_C"},
    {ASCII_D                ,"ASCII_D"},
    {ASCII_E                ,"ASCII_E"},
    {ASCII_F                ,"ASCII_F"},
    {ASCII_G                ,"ASCII_G"},
    {ASCII_H                ,"ASCII_H"},
    {ASCII_I                ,"ASCII_I"},
    {ASCII_J                ,"ASCII_J"},
    {ASCII_K                ,"ASCII_K"},
    {ASCII_L                ,"ASCII_L"},
    {ASCII_M                ,"ASCII_M"},
    {ASCII_N                ,"ASCII_N"},
    {ASCII_O                ,"ASCII_O"},
    {ASCII_P                ,"ASCII_P"},
    {ASCII_Q                ,"ASCII_Q"},
    {ASCII_R                ,"ASCII_R"},
    {ASCII_S                ,"ASCII_S"},
    {ASCII_T                ,"ASCII_T"},
    {ASCII_U                ,"ASCII_U"},
    {ASCII_V                ,"ASCII_V"},
    {ASCII_W                ,"ASCII_W"},
    {ASCII_X                ,"ASCII_X"},
    {ASCII_Y                ,"ASCII_Y"},
    {ASCII_Z                ,"ASCII_Z"},
    {ASCII_leftSquareBrace  ,"ASCII_leftSquareBrace"},
    {ASCII_backSlash        ,"ASCII_backSlash"},
    {ASCII_rightSquareBrace ,"ASCII_rightSquareBrace"},
    {ASCII_caret            ,"ASCII_caret"},
    {ASCII_underscore       ,"ASCII_underscore"},
    {ASCII_leftApostrophe   ,"ASCII_leftApostrophe"},
    {ASCII_a                ,"ASCII_a"},
    {ASCII_b                ,"ASCII_b"},
    {ASCII_c                ,"ASCII_c"},
    {ASCII_d                ,"ASCII_d"},
    {ASCII_e                ,"ASCII_e"},
    {ASCII_f                ,"ASCII_f"},
    {ASCII_g                ,"ASCII_g"},
    {ASCII_h                ,"ASCII_h"},
    {ASCII_i                ,"ASCII_i"},
    {ASCII_j                ,"ASCII_j"},
    {ASCII_k                ,"ASCII_k"},
    {ASCII_l                ,"ASCII_l"},
    {ASCII_m                ,"ASCII_m"},
    {ASCII_n                ,"ASCII_n"},
    {ASCII_o                ,"ASCII_o"},
    {ASCII_p                ,"ASCII_p"},
    {ASCII_q                ,"ASCII_q"},
    {ASCII_r                ,"ASCII_r"},
    {ASCII_s                ,"ASCII_s"},
    {ASCII_t                ,"ASCII_t"},
    {ASCII_u                ,"ASCII_u"},
    {ASCII_v                ,"ASCII_v"},
    {ASCII_w                ,"ASCII_w"},
    {ASCII_x                ,"ASCII_x"},
    {ASCII_y                ,"ASCII_y"},
    {ASCII_z                ,"ASCII_z"},
    {ASCII_leftCurlyBrace   ,"ASCII_leftCurlyBrace"},
    {ASCII_verticalBar      ,"ASCII_verticalBar"},
    {ASCII_rightCurlyBrace  ,"ASCII_rightCurlyBrace"},
    {ASCII_tilde            ,"ASCII_tilde"},
    {0                      ,"ASCII_unknown"},
    };

KeyEntry ScanCodes[] = {
    {KB_padEnter            ,"KB_padEnter"},
    {KB_padMinus            ,"KB_padMinus"},
    {KB_padPlus             ,"KB_padPlus"},
    {KB_padTimes            ,"KB_padTimes"},
    {KB_padDivide           ,"KB_padDivide"},
    {KB_padLeft             ,"KB_padLeft"},
    {KB_padRight            ,"KB_padRight"},
    {KB_padUp               ,"KB_padUp"},
    {KB_padDown             ,"KB_padDown"},
    {KB_padInsert           ,"KB_padInsert"},
    {KB_padDelete           ,"KB_padDelete"},
    {KB_padHome             ,"KB_padHome"},
    {KB_padEnd              ,"KB_padEnd"},
    {KB_padPageUp           ,"KB_padPageUp"},
    {KB_padPageDown         ,"KB_padPageDown"},
    {KB_padCenter           ,"KB_padCenter"},
    {KB_F1                  ,"KB_F1"},
    {KB_F2                  ,"KB_F2"},
    {KB_F3                  ,"KB_F3"},
    {KB_F4                  ,"KB_F4"},
    {KB_F5                  ,"KB_F5"},
    {KB_F6                  ,"KB_F6"},
    {KB_F7                  ,"KB_F7"},
    {KB_F8                  ,"KB_F8"},
    {KB_F9                  ,"KB_F9"},
    {KB_F10                 ,"KB_F10"},
    {KB_F11                 ,"KB_F11"},
    {KB_F12                 ,"KB_F12"},
    {KB_left                ,"KB_left"},
    {KB_right               ,"KB_right"},
    {KB_up                  ,"KB_up"},
    {KB_down                ,"KB_down"},
    {KB_insert              ,"KB_insert"},
    {KB_delete              ,"KB_delete"},
    {KB_home                ,"KB_home"},
    {KB_end                 ,"KB_end"},
    {KB_pageUp              ,"KB_pageUp"},
    {KB_pageDown            ,"KB_pageDown"},
    {KB_capsLock            ,"KB_capsLock"},
    {KB_numLock             ,"KB_numLock"},
    {KB_scrollLock          ,"KB_scrollLock"},
    {KB_leftShift           ,"KB_leftShift"},
    {KB_rightShift          ,"KB_rightShift"},
    {KB_leftCtrl            ,"KB_leftCtrl"},
    {KB_rightCtrl           ,"KB_rightCtrl"},
    {KB_leftAlt             ,"KB_leftAlt"},
    {KB_rightAlt            ,"KB_rightAlt"},
    {KB_leftWindows         ,"KB_leftWindows"},
    {KB_rightWindows        ,"KB_rightWindows"},
    {KB_menu                ,"KB_menu"},
    {KB_sysReq              ,"KB_sysReq"},
    {KB_esc                 ,"KB_esc"},
    {KB_1                   ,"KB_1"},
    {KB_2                   ,"KB_2"},
    {KB_3                   ,"KB_3"},
    {KB_4                   ,"KB_4"},
    {KB_5                   ,"KB_5"},
    {KB_6                   ,"KB_6"},
    {KB_7                   ,"KB_7"},
    {KB_8                   ,"KB_8"},
    {KB_9                   ,"KB_9"},
    {KB_0                   ,"KB_0"},
    {KB_minus               ,"KB_minus"},
    {KB_equals              ,"KB_equals"},
    {KB_backSlash           ,"KB_backSlash"},
    {KB_backspace           ,"KB_backspace"},
    {KB_tab                 ,"KB_tab"},
    {KB_Q                   ,"KB_Q"},
    {KB_W                   ,"KB_W"},
    {KB_E                   ,"KB_E"},
    {KB_R                   ,"KB_R"},
    {KB_T                   ,"KB_T"},
    {KB_Y                   ,"KB_Y"},
    {KB_U                   ,"KB_U"},
    {KB_I                   ,"KB_I"},
    {KB_O                   ,"KB_O"},
    {KB_P                   ,"KB_P"},

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?