TL;DR: Символ Брайля состоит из восьми точек, которые при вводе с QWERTY-клавиатуры создают Юникод Брайля. Раскладка следующая (по историческим причинам см. статью в Википедии о пишущих машинках Брайля):
- f, d, s, a для точек 1, 2, 3, 7 и
- j, k, l, ; для точек 4, 5, 6, 8.
Поскольку у пользователей разная ловкость (некоторые из них имеют серьезные проблемы с быстрым и/или одновременным нажатием клавиш), среди производителей оборудования и программного обеспечения стало традицией обрабатывать символы Брайля при нажатии клавиши. Так, например, можно нажать точку 1, немного подумать (не отпуская ее), затем нажать точку 2, потом еще раз подумать, затем нажать точку 3, затем отпустить точку 3 (потому что вы ошибаетесь), нажать точку 4 и отпустить все — в результате должны быть введены точки 1-2-4.
Проблема
Мы используем KeyEventArgs.KeyCode. Все работает отлично, если раскладка клавиатуры английская или какая-то другая, кроме латиницы (проверено пока с кириллицей). Однако, если мы попробуем использовать клавиатуры с переназначенной основной строкой, например, французскую (которая меняет местами Q и A, а также имеет M вместо английской точки с запятой) или немецкую и испанскую (которые имеют ö и ñ вместо точки с запятой соответственно), она перестанет работать. потому что код ключа неправильный.
Я пытался разобраться в проблеме использования P/Invoke, но на самом деле проблема в том, что я не знаю, что делать. Я могу получить символ из кода виртуальной клавиши, но это мне не поможет, потому что я знаю, что это Q, а не A, и так?
Поэтому мой вопрос: какие данные мне следует получить и как я могу их получить, чтобы:
- Их можно было получить при нажатии клавиши ;
- Это не зависит от переназначенных раскладок клавиатуры, например: клавиша, где находится английская A, независимо от того, является ли это A, Q, знаком бесконечности или чем-то еще.
li>
Подробнее здесь: https://stackoverflow.com/questions/786 ... ard-layout
Мобильная версия