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

如何实现键盘scan code与USB键盘usage index的相互转换?

可用的官方转换接口

微软已提供多套官方接口实现扫描码与USB HID键盘Usage Index的双向转换,无需自行维护映射表:

  • 用户态开发
    Win10 1607及以上系统可直接调用user32.dll导出的MapVirtualKeyExW函数,将参数uMapType指定为6(即官方定义的MAPVK_VSC_TO_HID_USAGE枚举值),输入扫描码即可直接返回对应的USB键盘Usage ID。如果需要反向转换,将uMapType指定为7(MAPVK_HID_USAGE_TO_VSC)即可。
    针对带E0/E1前缀的扩展扫描码,传入时只需将扩展标识位带上即可,函数会自动处理对应映射关系。
    若需要适配Win10 1607以下版本,可直接从公开的扫描码规范中提取映射表打包为静态资源,开发量极低,无需逐行编写转换逻辑。
  • 内核态驱动开发
    适配Win7及以上系统可直接调用HID类驱动导出的HidKbdScanCodeToUsage内核函数,该函数在wdm.h中声明,链接时引入hidclass.lib即可使用,输入扫描码和对应扩展标志位即可直接输出USB键盘Usage ID,反向转换可以使用HidKbdUsageToScanCode函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:05