是否有 Windows API 可以将硬件扫描代码转换为 ASCII 字符?
问问题
7605 次
2 回答
2
MapVirtualKeyEx和ToAsciiEx是您正在寻找的 - 示例用法here
于 2012-07-07T22:21:01.273 回答
1
Windows 是一个 Unicode 操作系统,它并不特别喜欢 ASCII。它也不偏向世界各地人们使用机器的方式。
由键盘输入事件(如 WM_KEYDOWN)产生的虚拟键的映射由窗口过程执行。它产生一个 WM_CHAR 键消息,底层的 api 函数是 ToUnicodeEx(),也暴露给你。一个有很多参数的函数,lpKeyState 参数对于翻译修饰键和死键是必不可少的,比如 Alt+Gr 和 Shift。dwhkl 参数对于允许不同用户使用不同的键盘布局至关重要。您不想参与进行相同翻译的业务,尤其是键盘状态是进程本地属性。
但是 ToUnicodeEx() 是它所需要的。
于 2012-07-07T22:30:57.213 回答