【发布时间】:2009-09-01 08:35:49
【问题描述】:
有没有办法把一个字符翻译成它对应的硬件扫描码(不是虚拟键码)?我需要它来与古老的硬件设备通信。
【问题讨论】:
-
哪个古硬件设备??
-
一个老式的自制嵌入式系统。它接受发送给它的原始键盘扫描码。我制作了一个 C# 应用程序来控制它,我希望发送给它的数据可读。
标签: windows visual-studio winapi
有没有办法把一个字符翻译成它对应的硬件扫描码(不是虚拟键码)?我需要它来与古老的硬件设备通信。
【问题讨论】:
标签: windows visual-studio winapi
似乎最直接的方法是使用 MapVirtualKey 或 MapVirtualKeyEx 将 VK 代码转换为扫描代码。
可以使用VkKeyScan获取VK扫描码的字符(根据MS文档提取包含VK码的低字节)。所以要得到'X'的扫描码:
UINT VKCode=LOBYTE(VkKeyScan('X'));
UINT ScanCode=MapVirtualKey(VKCode,0);
【讨论】: