You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于scancode、virtual scancode等键盘编码的区分及示例咨询

键盘编码概念区分与实例解析

一、核心概念澄清

  • Scancode(扫描码):与键盘物理按键位置绑定的硬件级编号,标准PC键盘主区扫描码统一,不同厂商可能存在微小差异。
  • Virtual Scancode(虚拟扫描码):系统对硬件扫描码做标准化处理后的编码,消除不同厂商扫描码的差异,让系统统一识别物理按键位置。
  • Keycode(键码):平台定义的、关联按键功能/字符的编码,部分场景下与虚拟键码混用,偏向系统层面的按键标识。
  • Virtual Keycode/Virtual Key(虚拟键码/虚拟键):系统抽象的按键逻辑标识,与物理位置无关,代表按键的功能含义——并非仅修饰键,普通字符键也有对应虚拟键码,比如无论键盘布局如何,逻辑上的E键对应固定虚拟键码。
  • 屏幕显示字符的编码:属于字符编码,比如Unicode(德语ö对应U+00F6)、ASCII、UTF-8等,用于表示文本字符,和键盘输入的硬件/系统编码不属于同一类别。

二、字母E/e对应的各类编码(以标准PC Qwerty键盘、Windows系统为例)

  • scancode:0x12(十进制为18,对应物理E键的硬件扫描码)
  • virtual scancode:0x12(标准化后的虚拟扫描码,与硬件扫描码一致)
  • keycode:Windows下与虚拟键码一致为0x45;Linux X11环境下为26
  • virtual keycode:0x45(系统定义的VK_E,逻辑指代E键)
  • virtual key:0x45(与虚拟键码为同一概念的不同表述)

三、额外问题解答

  • 65是Unicode编号(对应字符A,E的Unicode编号为69),属于字符编码,不属于上述键盘硬件/系统编码类别。
  • 18是物理键盘位置的十进制扫描码,属于Scancode(或Virtual Scancode)。
  • Shift键产生的编号:硬件层面是Scancode(左Shift为0x2A,右Shift为0x36);系统层面是Virtual Keycode(0x10,即VK_SHIFT)。

内容的提问来源于stack exchange,提问作者user3443063

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:35:11