【问题标题】:How to get make code from char in JavaScript?如何从 JavaScript 中的 char 获取 make 代码?
【发布时间】:2017-05-29 14:46:55
【问题描述】:

我正在为节点 from this library 开发 v86 模拟器。我需要发送一些键盘输入,但我首先需要将其转换为make code。有没有 JavaScript 函数可以做到这一点?

a => 0x1E
b => 0x30
c => 0x2E

Here is the table of that codes:

Key      Make  Break        Key    Make  Break

    Backspace     0E    8E          F1  3B    BB
    Caps Lock     3A    BA          F2  3C    BC
    Enter         1C    9C          F3  3D    BD
    Esc       01    81          F4  3E    BE
    Left Alt      38    B8          F7  41    C1
    Left Ctrl     1D    9D          F5  3F    BF
    Left Shift    2A    AA          F6  40    C0
    Num Lock      45    C5          F8  42    C2
    Right Shift   36    B6          F9  43    C3
    Scroll Lock   46    C6          F10 44    C4
    Space         39    B9          F11 57    D7
    Sys Req (AT)  54    D4          F12 58    D8
    Tab       0F    8F

            Keypad Keys            Make   Break

            Keypad 0  (Ins)     52  D2
            Keypad 1  (End)         4F  CF
            Keypad 2  (Down arrow)  50  D0
            Keypad 3  (PgDn)        51  D1
            Keypad 4  (Left arrow)  4B  CB
            Keypad 5            4C  CC
            Keypad 6  (Right arrow) 4D  CD
            Keypad 7  (Home)        47  C7
            Keypad 8  (Up arrow)    48  C8
            Keypad 9  (PgUp)        49  C9
            Keypad .  (Del)         53  D3
            Keypad *  (PrtSc)       37  B7
            Keypad -            4A  CA
            Keypad +            4E  CE

           Key    Make  Break          Key    Make  Break

        A      1E    9E         N      31    B1
        B      30    B0         O      18    98
        C      2E    AE         P      19    99
        D      20    A0         Q      10    90
        E      12    92         R      13    93
        F      21    A1         S      1F    9F
        G      22    A2         T      14    94
        H      23    A3         U      16    96
        I      17    97         V      2F    AF
        J      24    A4         W      11    91
        K      25    A5         X      2D    AD
        L      26    A6         Y      15    95
        M      32    B2         Z      2C    AC

           Key    Make  Break          Key    Make  Break

        1      02    82         -      0C    8C
        2      03    83         =      0D    8D
        3      04    84         [      1A    9A
        4      05    85         ]      1B    9B
        5      06    86         ;      27    A7
        6      07    87         '      28    A8
        7      08    88         `      29    A9
        8      09    89         \      2B    AB
        9      0A    8A         ,      33    B3
        0      0B    8B         .      34    B4
                        /      35    B5

是的。我可以将它重写为 JavaScript,但是还有一些其他的键盘键,需要很长时间才能完成,所以这就是我问这个的原因。

【问题讨论】:

    标签: javascript node.js char emulation keypress


    【解决方案1】:

    这里的所有答案和 cmets 都完全没有抓住重点。 Right Shift press 没有 Unicode 代码,Right Shift 版本也没有 Unicode 代码。同样,您不能通过右移按下和 Print Screen 释放来生成字符串来解析它并打印代码。你怎么可能把右移释放放在一个字符串中?显然这里有些人的想象力比我大。

    通断代码与可以打印在屏幕上或存储在字符串中的字符无关。这些是键盘发送以发出按键和释放信号的代码。然后操作系统可以将这些代码翻译成字符,但不能直接翻译。例如,如果按下了 shift 但未释放,然后检测到对应于在 QWERTY 键盘上按下字母 Q 的代码,则操作系统可能会将其解释为大写 Q(除非大写锁定已打开)并且如果它没有检测到 Q 字母的释放,它也可能开始自动重复它,直到它检测到字母 Q 的释放。但是在 QWERTY 键盘上为字母 Q 发送的相同代码会为字母 A 发送在 AZERTY 键盘上。钥匙上印什么并不重要,重要的是钥匙的物理位置和电气连接。

    现在,你可以看看 npm 上的一些模块:

    但我怀疑你是否真的会发现一些有用的东西,因为你通常不能使用 JavaScript 或 Node 在如此低级别的键盘硬件上工作。

    如果您在 npm 上没有发现任何有用的东西,并且最终重写了包含在 JavaScript 中的表,那么请考虑将其发布到 npm 上,以便其他人可以使用它。

    更新

    我刚刚找到了这个模块:

    它似乎包含了一些您需要的代码。你也许可以从它的源代码中得到它。

    【讨论】:

      猜你喜欢
      • 2011-03-05
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 2019-08-29
      相关资源
      最近更新 更多