⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kbusex.pas

📁 delphi写的屏幕键盘
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit KbUsEx;

interface

uses Windows;

//
// Key names
//
const
  KB_LSHIFT     =  0;
  KB_RSHIFT     =  1;
  KB_CAPLOCK    =  2;
  KB_SPACE      =  3;
  KB_LCTR       =  4;
  KB_RCTR       =  5;
  KB_LALT       =  6;
  KB_RALT       =  7;
  KB_NUMLOCK    =  8;
  KB_PSC        =  9;
  NO_NAME       =  10;
  ICON          =  11;
  KB_SCROLL     =  12;
  BITMAP        =  13;

//
// Key types
//
const
  KNORMAL_TYPE        =  1;
  KMODIFIER_TYPE      =  2;
  KDEAD_TYPE          =  3;
  NUMLOCK_TYPE        =  4;
  SCROLLOCK_TYPE      =  5;
  CAPSLOCK_TYPE       =  6;

//
// 单个按键
//
type
  TKbKeyRec = record
    TextL: PChar;      // text in key lower
    TextC: PChar;      // text in key capital
    SkLow: PChar;      // What has to be printed low letter
    SkCap: PChar;      // What has to be printed cap letter
    Name: Integer;     // BITMAP, LSHIFT, RSHIF...
    PosY: Short;       // See explanation above
    PosX: Short;       // same as above
    kSizeY: Short;     // key size in conventional units
    kSizeX: Short;     // same as above
    kType: Integer;    // 1 - normal, 2 - modifier, 3 - dead
    Print: Integer;    // 1 - print use ToAscii(), 2 - print the text provided by the header file
    ScanCode: array[0..3] of UInt; // key scan-code
  end;

//
// 美式键盘
//
var
  KbKeyList: array[0..103] of TKbKeyRec =
  (
    (TextL: 'esc';         TextC: 'esc';         SkLow: '{esc}';       SkCap: '{esc}';       Name: NO_NAME;    PosY: 1;  PosX: 1;   kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($01, $00, $00, $00)),
    (TextL: 'F1';          TextC: 'F1';          SkLow: '{f1}';        SkCap: '{f1}';        Name: NO_NAME;    PosY: 1;  PosX: 19;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($3B, $00, $00, $00)),
    (TextL: 'F2';          TextC: 'F2';          SkLow: '{f2}';        SkCap: '{f2}';        Name: NO_NAME;    PosY: 1;  PosX: 28;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($3C, $00, $00, $00)),
    (TextL: 'F3';          TextC: 'F3';          SkLow: '{f3}';        SkCap: '{f3}';        Name: NO_NAME;    PosY: 1;  PosX: 37;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($3D, $00, $00, $00)),
    (TextL: 'F4';          TextC: 'F4';          SkLow: '{f4}';        SkCap: '{f4}';        Name: NO_NAME;    PosY: 1;  PosX: 46;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($3E, $00, $00, $00)),
    (TextL: 'F5';          TextC: 'F5';          SkLow: '{f5}';        SkCap: '{f5}';        Name: NO_NAME;    PosY: 1;  PosX: 60;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($3F, $00, $00, $00)),
    (TextL: 'F6';          TextC: 'F6';          SkLow: '{f6}';        SkCap: '{f6}';        Name: NO_NAME;    PosY: 1;  PosX: 69;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($40, $00, $00, $00)),
    (TextL: 'F7';          TextC: 'F7';          SkLow: '{f7}';        SkCap: '{f7}';        Name: NO_NAME;    PosY: 1;  PosX: 78;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($41, $00, $00, $00)),
    (TextL: 'F8';          TextC: 'F8';          SkLow: '{f8}';        SkCap: '{f8}';        Name: NO_NAME;    PosY: 1;  PosX: 87;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($42, $00, $00, $00)),
    (TextL: 'F9';          TextC: 'F9';          SkLow: '{f9}';        SkCap: '{f9}';        Name: NO_NAME;    PosY: 1;  PosX: 101; kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($43, $00, $00, $00)),
    (TextL: 'F10';         TextC: 'F10';         SkLow: '{f10}';       SkCap: '{f10}';       Name: NO_NAME;    PosY: 1;  PosX: 110; kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($44, $00, $00, $00)),
    (TextL: 'F11';         TextC: 'F11';         SkLow: '{f11}';       SkCap: '{f11}';       Name: NO_NAME;    PosY: 1;  PosX: 119; kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($57, $00, $00, $00)),
    (TextL: 'F12';         TextC: 'F12';         SkLow: '{f12}';       SkCap: '{f12}';       Name: NO_NAME;    PosY: 1;  PosX: 128; kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($58, $00, $00, $00)),
    (TextL: 'psc';         TextC: 'psc';         SkLow: '{PRTSC}';     SkCap: '{PRTSC}';     Name: KB_PSC;     PosY: 1;  PosX: 138; kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($E0, $2A, $E0, $37)),
    (TextL: 'slk';         TextC: 'slk';         SkLow: '{SCROLLOCK}'; SkCap: '{SCROLLOCK}'; Name: KB_SCROLL;  PosY: 1;  PosX: 147; kSizeY: 8;  kSizeX: 8;  kType: SCROLLOCK_TYPE; Print: 2; ScanCode: ($46, $00, $00, $00)),
    (TextL: 'brk';         TextC: 'pau';         SkLow: '{BREAK}';     SkCap: '{^s}';        Name: NO_NAME;    PosY: 1;  PosX: 156; kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 2; ScanCode: ($E1, $1D, $45, $00)),
    (TextL: '`';           TextC: '~';           SkLow: '`';           SkCap: '{~}';         Name: NO_NAME;    PosY: 12; PosX: 1;   kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($29, $00, $00, $00)),
    (TextL: '1';           TextC: '!';           SkLow: '1';           SkCap: '!';           Name: NO_NAME;    PosY: 12; PosX: 10;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($02, $00, $00, $00)),
    (TextL: '2';           TextC: '@';           SkLow: '2';           SkCap: '@';           Name: NO_NAME;    PosY: 12; PosX: 19;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($03, $00, $00, $00)),
    (TextL: '3';           TextC: '#';           SkLow: '3';           SkCap: '#';           Name: NO_NAME;    PosY: 12; PosX: 28;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($04, $00, $00, $00)),
    (TextL: '4';           TextC: '$';           SkLow: '4';           SkCap: '$';           Name: NO_NAME;    PosY: 12; PosX: 37;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($05, $00, $00, $00)),
    (TextL: '5';           TextC: '%';           SkLow: '5';           SkCap: '{%}';         Name: NO_NAME;    PosY: 12; PosX: 46;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($06, $00, $00, $00)),
    (TextL: '6';           TextC: '^';           SkLow: '6';           SkCap: '{^}';         Name: NO_NAME;    PosY: 12; PosX: 55;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($07, $00, $00, $00)),
    (TextL: '7';           TextC: '&';           SkLow: '7';           SkCap: '&';           Name: NO_NAME;    PosY: 12; PosX: 64;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($08, $00, $00, $00)),
    (TextL: '8';           TextC: '*';           SkLow: '8';           SkCap: '*';           Name: NO_NAME;    PosY: 12; PosX: 73;  kSizeY: 8;  kSizeX: 8;  kType: KNORMAL_TYPE;   Print: 1; ScanCode: ($09, $00, $00, $00)),

⌨️ 快捷键说明

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