硬件扫描代码到ascii char转换

时间:2012-07-07 21:54:44

标签: c++ windows winapi keyboard ascii

是否有Windows API将硬件扫描代码转换为ASCII字符?

2 个答案:

答案 0 :(得分:2)

您正在寻找

MapVirtualKeyExToAsciiEx - 样本使用here

答案 1 :(得分:1)

Windows是一个Unicode操作系统,它并不特别喜欢ASCII。它也不会偏向全世界人们使用机器的方式。

由WM_KEYDOWN等键盘输入事件产生的虚拟键的映射由窗口过程执行。其中产生WM_CHAR键消息,底层api函数是ToUnicodeEx(),也暴露给你。具有大量参数的函数,lpKeyState参数对于转换修饰符和死键(如Alt + Gr和Shift)至关重要。 dwhkl参数对于允许不同用户使用不同的键盘布局至关重要。您不希望进行相同的翻译,特别是键盘状态是一个进程本地属性。

但ToUnicodeEx()就是它。