0

У меня проблема в программе, где я обнаруживаю нажатия клавиш. Все персонажи работают над клавишами QUERTY, но я знаю о проблемах с некоторыми персонажами на клавиатуре AZERTY.Обнаружение определенных клавиш на клавиатуре AZERTY?

Например, когда \ нажимается на клавиатуре AZERTY, ему присваивается код ключа 226 (â).

Как я могу обеспечить соответствие поведения между раскладками клавиатуры? Я ожидал, что обработка встроенных событий будет последовательной.

+0

Возможно, вы сможете проверить расположение клавиш. Я не знаю эту функцию. Вопрос: кто-нибудь еще использует Google? –

+0

показать нам, как вы получаете нажатие клавиш –

+0

Я использую стандартное событие KeyDown RichTextBox и проверяя e.KeyCode. –

ответ

0

Возможно, вы захотите сначала указать detect the keyboard layout, а затем использовать другой код ключа для сопоставления символов.

0

Я не могу воспроизвести это вообще. Обратная косая черта составлена ​​на клавиатуре AZERTY, удерживая AltGr, а затем нажав клавишу в строке цифр над буквами. Когда вы делаете, что следующие KeyDown события увольняют:

  • KeyCode: Меню, KeyValue: 18 для AltGr спускаясь
  • KeyCode: D8, KeyValue: 56 для спускаясь

с другой стороны, если вы нажмете клавишу сразу слева от W затем KeyDown с KEYCODE OemBackslash и KeyValue 226 обжигают, и < в текстовом поле.

Интересно, правильно ли настроена раскладка клавиатуры в соответствии с вашей конкретной клавиатурой. Я предполагаю, что ваша клавиатура похожа на изображение на этой странице Википедии: http://en.wikipedia.org/wiki/AZERTY

0

Да, разные раскладки клавиатуры дают разные коды клавиш. documentation описывает VK_OEM_102 (keycode 226) как "<>" or "\|" on RT 102-key keyboard, поэтому код ключа даже не должен соответствовать одному конкретному символу.

Чтобы узнать, к чему относится символ, используйте функцию MapVirtualKey. Затем вы можете проверить, является ли это обратным слэшем.

Смежные вопросы