Как назначить клавиши на физическое положение на клавиатуре в Windows? - PullRequest
0 голосов
/ 21 сентября 2010

Есть как минимум 3 разных раскладки клавиатуры, которые используют программу, которую я делаю, и мне все равно, какую клавишу они нажимают, тем более важно, где нажимаются клавиши.

Я не могу просто спроситьПользователь нажимает 100 различных клавиш / комбинаций, что займет слишком много времени и будет очень запутанным для пользователя.

Есть ли какая-нибудь библиотека или что-то, что может сделать это для меня?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

В этом ответе говорится, что вы можете использовать клавиатуру "Scan Code", которая должна быть одинаковой на всех клавиатурах.Таким образом, похоже, что на самом деле существует способ определения расположения клавиш.

Даже без использования кода сканирования вы можете реализовать таблицу сопоставления для всех раскладок клавиатуры, которые вы поддерживаете.Поэтому, если раскладка клавиатуры - американский английский, клавиша будет отображаться на команду A, но на раскладке German German она будет отображаться на команду B, а некоторая другая команда будет отображаться на команду A. Она может работать не для всех клавиатур, но еслиэто работает для всех ваших пользователей, вот что имеет значение.Я понимаю, почему вы искали существующую библиотеку, чтобы сделать это, поскольку это потребовало бы значительных усилий.

0 голосов
/ 21 сентября 2010

Это не может быть сделано. Клавиатуры не поставляются со своей раскладкой в ​​электронном виде, которая может быть найдена ОС. Они просто посылают код для нажатой клавиши, а не там, где она находится. Я ежедневно работаю над несколькими клавиатурами, которые классифицируются как немецкие, но некоторые клавиши находятся в разных местах.

Единственный способ узнать, в каком физическом положении находится конкретная клавиша на конкретной клавиатуре, - это посмотреть, что напечатано на клавише.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...