检测AZERTY键盘上的某些键?

时间:2012-05-21 20:17:36

标签: c# keyboard keyboard-events regional-settings azerty-keyboard

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

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

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

3 个答案:

答案 0 :(得分:0)

您可能需要先detect the keyboard layout,然后使用不同的键码来进行角色映射。

答案 1 :(得分:0)

我完全无法重现。通过按住 AltGr ,然后按字母上方数字行上的 8 键,在AZERTY键盘上组合反斜杠。执行此操作时,将触发以下KeyDown事件:

  • KeyCode:菜单,KeyValue:18, AltGr 下降
  • KeyCode:D8,KeyValue: 8 下降56

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

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

答案 2 :(得分:0)

是的,不同的键盘布局会提供不同的键码。 documentationVK_OEM_102(键码226)描述为"<>" or "\|" on RT 102-key keyboard,因此键码甚至不应与单个特定字符相对应。

要查看密钥对应的字符,请使用MapVirtualKey功能。然后,您可以检查它是否是反斜杠。