0

我在检测按键的程序中遇到问题。所有字符都在 QUERTY 键盘上工作,但我知道 AZERTY 键盘上的某些字符存在问题。

例如,当在 AZERTY 键盘上按下 \ 时,会得到 226 (â) 的键码。

如何确保键盘布局的行为一致?我希望内置的事件处理是一致的。

4

3 回答 3

0

是的,不同的键盘布局给出不同的键码。该文档VK_OEM_102(keycode 226) 描述为"<>" or "\|" on RT 102-key keyboard,因此键码甚至不应该对应于单个特定字符。

要查看键对应的字符,请使用MapVirtualKey函数。然后,您可以检查它是否是反斜杠。

于 2012-05-22T08:35:23.673 回答
0

我根本无法重现。反斜杠是在 AZERTY 键盘上通过按住AltGr然后按下8字母上方数字行上的键来组成的。当您这样做时,会触发以下KeyDown事件:

  • KeyCode: Menu, KeyValue: 18 表示AltGr向下
  • KeyCode: D8, KeyValue: 568向下

另一方面,如果您按下紧靠左侧的键,W则会KeyDown触发带有 KeyCode OemBackslash 和 KeyValue 226 的键,并且<文本框中会出现一个字符。

我想知道您的键盘布局是否设置不正确以匹配您的特定键盘。我假设你的键盘看起来像这个维基百科页面上的图像:http ://en.wikipedia.org/wiki/AZERTY

于 2012-05-22T08:28:35.500 回答
0

您可能希望首先检测键盘布局,然后使用不同的键码到字符映射。

于 2012-05-21T20:27:27.647 回答