local KeyCode = {
    Escape = 1,
    D1 = 2,
    D2 = 3,
    D3 = 4,
    D4 = 5,
    D5 = 6,
    D6 = 7,
    D7 = 8,
    D8 = 9,
    D9 = 10,
    D0 = 11,
    Minus = 12,
    Equals = 13,
    BackSpace = 14,
    Tab = 15,
    Q = 16,
    W = 17,
    E = 18,
    R = 19,
    T = 20,
    Y = 21,
    U = 22,
    I = 23,
    O = 24,
    P = 25,
    LeftBracket = 26,
    RightBracket = 27,
    Enter = 28,
    LeftControl = 29,
    A = 30,
    S = 31,
    D = 32,
    F = 33,
    G = 34,
    H = 35,
    J = 36,
    K = 37,
    L = 38,
    SemiColon = 39,
    Apostrophe = 40,
    Grave = 41,
    LeftShift = 42,
    BackSlash = 43,
    Z = 44,
    X = 45,
    C = 46,
    V = 47,
    B = 48,
    N = 49,
    M = 50,
    Comma = 51,
    Period = 52,
    Slash = 53,
    RightShift = 54,
    -- NumPadStar
    Multiply = 55,
    -- LeftMenu
    LeftAlt = 56,
    Space = 57,
    -- Capital
    CapsLock = 58,
    F1 = 59,
    F2 = 60,
    F3 = 61,
    F4 = 62,
    F5 = 63,
    F6 = 64,
    F7 = 65,
    F8 = 66,
    F9 = 67,
    F10 = 68,
    Numlock = 69,
    Scroll = 70,
    NumPad7 = 71,
    NumPad8 = 72,
    NumPad9 = 73,
    -- Subtract
    NumPadMinus = 74,
    NumPad4 = 75,
    NumPad5 = 76,
    NumPad6 = 77,
    -- Add
    NumPadPlus = 78,
    NumPad1 = 79,
    NumPad2 = 80,
    NumPad3 = 81,
    NumPad0 = 82,
    -- Decimal
    NumPadPeriod = 83,
    Oem102 = 86,
    F11 = 87,
    F12 = 88,
    F13 = 100,
    F14 = 101,
    F15 = 102,
    Kana = 112,
    AbntC1 = 115,
    Convert = 121,
    NoConvert = 123,
    Yen = 125,
    AbntC2 = 126,
    NumPadEquals = 141,
    -- PrevTrack
    Circumflex = 144,
    At = 145,
    Colon = 146,
    Underline = 147,
    Kanji = 148,
    Stop = 149,
    Ax = 150,
    Unlabeled = 151,
    NextTrack = 153,
    NumPadEnter = 156,
    RightControl = 157,
    Mute = 160,
    Calculator = 161,
    PlayPause = 162,
    MediaStop = 164,
    VolumeDown = 174,
    VolumeUp = 176,
    WebHome = 178,
    NumPadComma = 179,
    -- Divide
    NumPadSlash = 181,
    SysRq = 183,
    -- RightMenu
    RightAlt = 184,
    Pause = 197,
    Home = 199,
    Up = 200,
    PageUp = 201,
    Left = 203,
    Right = 205,
    End = 207,
    Down = 208,
    PageDown = 209,
    Insert = 210,
    Delete = 211,
    LeftWindows = 219,
    RightWindows = 220,
    Apps = 221,
    Power = 222,
    Sleep = 223,
    Wake = 227,
    WebSearch = 229,
    WebFavorites = 230,
    WebRefresh = 231,
    WebStop = 232,
    WebForward = 233,
    WebBack = 234,
    MyComputer = 235,
    Mail = 236,
    MediaSelect = 237
}

setmetatable(KeyCode, {
    __newindex = function(table, key, value)
        error("Attempt to modify a read-only enum table 'KeyCode'") -- 禁止修改
    end
})

return KeyCode
