2015-12-27 2 views

ответ

0

Ваш вопрос еще не совсем ясен. Когда вы говорите «другая клавиатура», вы имеете в виду другое аппаратное обеспечение, отличное от QWERTY-клавиатуры? Если у этого другого оборудования есть ключ с определенной меткой («A») на нем в другом положении, чем ключ с той же меткой («A») на клавиатуре QWERTY (рядом с самой левой на третьей строке). В этом случае я бы сказал, что ваш вопрос означает «какой ключ находится на соседнем крайнем левом углу в третьей строке на другой клавиатуре?»

Если это вопрос, тогда ответ можно определить, запросив окна (GetKeyboardLayout или эквивалент .NET, если таковой имеется) для «раскладки клавиатуры». Вы возвращаете идентификатор языка ввода. Идентификатор языка ввода можно перевести в локаль, используя этот table.

Используя язык, вы можете посмотреть графические схемы раскладки клавиатуры here. Выберите локаль из выпадающего списка.

EDIT 12/29/15

Чтобы сделать это программно: один из способов будет кодировать графические схемы раскладки клавиатуры вы заинтересованы в Клавиатуры генерируют «скан коды».. Таким образом, на раскладке клавиатуры США код сканирования 31 соответствует клавише A. Таким образом, вы можете построить таблицу для всех возможных кодов сканирования для американского макета. И сделайте то же самое для французского канадца, а затем французского швейцарца и т. Д. Затем вы можете перевести A на раскладку клавиатуры США для сканирования кода 31 на все, что сопоставляется с другими раскладками клавиатуры.

Это основано на предположении, что коды сканирования остаются неизменными на клавиатурах, и только метки на клавишах меняются. Я уверен, что существуют ограничения на это предположение. Например, если вы google «китайская клавиатура» и посмотрите на изображения, вы увидите несколько клавиатур с гораздо большим количеством клавиш, чем традиционная клавиатура в американском стиле (которая содержит около 100 клавиш).

Однако таблицы, которые я предлагаю, скорее всего уже доступны в Windows. Где-то во входном стеке Windows должна переводить коды сканирования в символы. Я предлагаю googling для получения дополнительной информации о раскладках клавиатуры Windows и API-интерфейсах, которые касаются «входных локалей».

+0

Это отличный ответ. Но могу ли я сделать это по коду? Если у меня есть клавиатура. Как конвертировать ключи (получить ключевое положение, а затем преобразовать его)? –

+0

Редактирование ответа для ответа на этот вопрос. –

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