Расширение клавиатуры Windows - PullRequest
2 голосов
/ 11 марта 2011

Я заинтересован в расширении клавиш на клавиатуре Windows (в частности, но не обязательно, в Windows 7). В настоящее время я могу использовать ключи, доступные здесь, в моем приложении C #:

http://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.71).aspx

Что меня интересует, так это расширение доступных кодов клавиш, чтобы я мог адаптировать их к своему конкретному оборудованию (программируемая клавиатура), а затем иметь возможность регистрировать их в моих приложениях C # / DirectX. Я знаю, что можно создавать комбинации горячих клавиш, но я хотел бы сначала изучить эту опцию. Мои вопросы:

А) этот подход совершенно сумасшедший?

B) если A == false: кто-нибудь имел практический опыт с этим. Можно Вы рекомендуете любое хорошее ключевые слова / учебники, которые я должен быть глядя на?

1 Ответ

2 голосов
/ 11 марта 2011

Насколько я понимаю, Windows принимает ввод с клавиатуры / мыши только на основе перечисления ключей (Виртуальные клавиши в неуправляемом мире: http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx). Это делает ваш вариант невозможным в Windows.

В качестве конкретного примера Windows имеет коды только для пяти кнопок мыши (LButton, RButton, MButton, XButton1, XButton2), но вы можете приобрести мышь, которая поставляется с более чем пятью кнопками.коды виртуальных клавиш для расширенных кнопок не могут быть созданы на лету. Чтобы обойти это ограничение, мыши, подобные этой, поставляются с программным обеспечением, которое позволяет программировать действия, выполняемые нажатием каждой кнопки. Как правило, вы найдете параметры для привязки расширенных кнопок.одним нажатием некоторого другого кода виртуальной клавиши или даже написанием более сложных макросов, сочетающих несколько нажатий клавиш.

В вашем приложении лучшее, что вы сможете сделать, - убедиться, что вы правильно обрабатываете весь диапазонЗначения (и комбинации модификаторов) из перечисления клавиш. Затем запрограммируйте клавиатуру соответствующим образом.Это может означать использование некоторых расширенных виртуальных ключей, таких как BrowserForward, для немедленного доступа к большому набору кодов виртуальных клавиш или создание более сложных макросов для быстрого ввода последовательных кодов виртуальных клавиш.

...