首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實現螢幕鍵盤 ScreenKeyboard(五)——虛擬鍵碼對照表與組合鍵處理邏輯

     編輯:關於C語言

組合鍵對應結構


// Key: VK_SHIFT, VK_CONTROL 等虛擬鍵碼
// Value: 對應的 KeyboardButton 列表 (左右鍵共用同一 VK)
IDictionary<short, IList<KeyboardButton>> combinationVKButtonsMap;

完整虛擬鍵碼常數類別


internal static class KeyboardConstaint
{
    // Function keys
    internal static readonly short VK_F1 = 0x70;  // ... VK_F12 = 0x7B
    internal static readonly short VK_F2 = 0x71;
    internal static readonly short VK_F3 = 0x72;
    internal static readonly short VK_F4 = 0x73;
    internal static readonly short VK_F5 = 0x74;
    internal static readonly short VK_F6 = 0x75;
    internal static readonly short VK_F7 = 0x76;
    internal static readonly short VK_F8 = 0x77;
    internal static readonly short VK_F9 = 0x78;
    internal static readonly short VK_F10 = 0x79;
    internal static readonly short VK_F11 = 0x7A;
    internal static readonly short VK_F12 = 0x7B;

    // Arrow keys
    internal static readonly short VK_LEFT = 0x25;
    internal static readonly short VK_UP = 0x26;
    internal static readonly short VK_RIGHT = 0x27;
    internal static readonly short VK_DOWN = 0x28;

    // Special keys
    internal static readonly short VK_NONE = 0x00;
    internal static readonly short VK_ESCAPE = 0x1B;
    internal static readonly short VK_EXECUTE = 0x2B;
    internal static readonly short VK_CANCEL = 0x03;
    internal static readonly short VK_RETURN = 0x0D;
    internal static readonly short VK_ACCEPT = 0x1E;
    internal static readonly short VK_BACK = 0x08;
    internal static readonly short VK_TAB = 0x09;
    internal static readonly short VK_DELETE = 0x2E;
    internal static readonly short VK_CAPITAL = 0x14;  // Caps Lock
    internal static readonly short VK_NUMLOCK = 0x90;
    internal static readonly short VK_SPACE = 0x20;
    internal static readonly short VK_DECIMAL = 0x6E;
    internal static readonly short VK_SUBTRACT = 0x6D;
    internal static readonly short VK_ADD = 0x6B;
    internal static readonly short VK_DIVIDE = 0x6F;
    internal static readonly short VK_MULTIPLY = 0x6A;
    internal static readonly short VK_INSERT = 0x2D;

    // OEM keys (US 標準鍵盤)
    internal static readonly short VK_OEM_1 = 0xBA;      // ';:'
    internal static readonly short VK_OEM_PLUS = 0xBB;   // '+'
    internal static readonly short VK_OEM_MINUS = 0xBD;  // '-'
    internal static readonly short VK_OEM_2 = 0xBF;      // '/?'
    internal static readonly short VK_OEM_3 = 0xC0;      // '`~'
    internal static readonly short VK_OEM_4 = 0xDB;      // '[{'
    internal static readonly short VK_OEM_5 = 0xDC;      // '\|'
    internal static readonly short VK_OEM_6 = 0xDD;      // ']}'
    internal static readonly short VK_OEM_7 = 0xDE;      // ''"'
    internal static readonly short VK_OEM_PERIOD = 0xBE; // '.>'
    internal static readonly short VK_OEM_COMMA = 0xBC;  // ',<'

    // Modifier keys
    internal static readonly short VK_SHIFT = 0x10;
    internal static readonly short VK_CONTROL = 0x11;
    internal static readonly short VK_MENU = 0x12;       // Alt
    internal static readonly short VK_LWIN = 0x5B;
    internal static readonly short VK_RWIN = 0x5C;
    internal static readonly short VK_APPS = 0x5D;       // Menu/右鍵鍵

    // Left/Right specific modifiers
    internal static readonly short VK_LSHIFT = 0xA0;
    internal static readonly short VK_RSHIFT = 0xA1;
    internal static readonly short VK_LCONTROL = 0xA2;
    internal static readonly short VK_RCONTROL = 0xA3;
    internal static readonly short VK_LMENU = 0xA4;
    internal static readonly short VK_RMENU = 0xA5;

    // Navigation
    internal static readonly short VK_SNAPSHOT = 0x2C;   // Print Screen
    internal static readonly short VK_SCROLL = 0x91;     // Scroll Lock
    internal static readonly short VK_PAUSE = 0x13;
    internal static readonly short VK_HOME = 0x24;
    internal static readonly short VK_NEXT = 0x22;       // Page Down
    internal static readonly short VK_PRIOR = 0x21;      // Page Up
    internal static readonly short VK_END = 0x23;

    // Numpad
    internal static readonly short VK_NUMPAD0 = 0x60;  // ... VK_NUMPAD9 = 0x69
    internal static readonly short VK_NUMPAD1 = 0x61;
    internal static readonly short VK_NUMPAD2 = 0x62;
    internal static readonly short VK_NUMPAD3 = 0x63;
    internal static readonly short VK_NUMPAD4 = 0x64;
    internal static readonly short VK_NUMPAD5 = 0x65;
    internal static readonly short VK_NUMPAD5NOTHING = 0x0C;
    internal static readonly short VK_NUMPAD6 = 0x66;
    internal static readonly short VK_NUMPAD7 = 0x67;
    internal static readonly short VK_NUMPAD8 = 0x68;
    internal static readonly short VK_NUMPAD9 = 0x69;

    // SendInput flags
    internal static readonly short KEYEVENTF_EXTENDEDKEY = 0x0001;
    internal static readonly short KEYEVENTF_KEYUP = 0x0002;

    // Window styles
    internal static readonly int GWL_EXSTYLE = -20;
    internal static readonly int WS_DISABLED = 0x8000000;
    internal static readonly int WM_SETFOCUS = 0x0007;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved