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

求VkKeyScanExA支持的全部TCHAR按键输入参数列表用于动态按键模拟

核心说明

VkKeyScanExA不存在你需要的全按键字符串参数列表,这是由它的设计定位决定的:它的入参本质是ANSI编码的字符值,作用是将「当前键盘布局下可直接输入输出的可见字符/标准控制字符」转换为对应的虚拟键码+修饰键状态,天生不支持区分主键盘数字和小键盘数字——因为两者输入后输出的字符都是'4',在字符层面没有任何差异,所以VkKeyScanExA不可能通过传入不同的字符串来区分这两个按键。


可行解决方案

  • 方案1:完全自行维护按键名到虚拟键码的映射表
    直接参考Virtual-Key Codes列表,在Java侧预定义所有按键的字符串标识和对应虚拟键码的映射关系,比如约定:
    • 主键盘4对应字符串"4",映射值0x34
    • 小键盘4对应字符串"NUMPAD4",映射值0x64
      映射表直接传入DLL层使用,不需要经过VkKeyScanExA转换,直接传给SendInput即可,这个方案兼容性最好,不受系统键盘布局影响。
  • 方案2:混合逻辑适配
    如果需要兼容不同键盘布局下的可打印字符转换,可保留VkKeyScanExA处理常规可打印字符的逻辑,单独对非可打印的特殊按键(小键盘、功能键、方向键等)做分支判断:遇到约定的特殊按键名直接返回对应虚拟键码,不走VkKeyScanExA转换流程。

补充注意事项

如果模拟小键盘按键时出现识别异常,可以在填充INPUT结构体时额外设置ki.wScan字段为对应按键的硬件扫描码,确保按键事件可以被正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:15:03