我使用ToUnicodeEx函数将扫描码和虚拟键码转换为Unicode字符。在大多数情况下,它的工作方式如documentation中所述。但是在某些键盘布局中的某些键上,ToUnicodeEx用零填充缓冲区但返回1.根据MSDN,它表示写入缓冲区的一个字符。但缓冲区中的第一个值包含0.我应该如何解释这些值组合?
我在以下情况中发现了这种行为:
Microsoft Keyboard Layout Creator加载这些布局时没有错误。在阿拉伯语(102)键上有问题是空的。在Inuktitut上 - 带问题的拉丁布局键包含大括号字符'}'。
我不明白,键盘布局创建器如何读取此字符。