2013-10-07 3 views
2

Я делаю проект в C#. Я хочу поймать данные сканирующего кода клавиатуры. Я использовал функцию MapVirtualKey(). Но с этой функцией клавиатура переводится с кода сканирования в ascii-код, затем мы используем эту функцию для перевода из ascii обратно в код сканирования. Я хочу знать, как поймать код сканирования клавиатуры, прежде чем он перейдет в код ascii, что означает, что когда я нажимаю клавишу, я получу код. Когда я выпущу, я получу код прерывания. Например, нажмите клавишу «A», я получу «1E», релиз я получу «9E» (makecode и breakcode для кода сканирования 1). Спасибо всем.Код сканирования клавиатуры в C#

+0

Что вы пытаетесь достичь? Почему бы не просто обернуть MapVirtualKey()? –

+0

Я хочу поймать исходные данные, которые посылает клавиатура, то есть код сканирования. MapVirtualKey() только что переводится между кодом сканирования и кодом ascii, а не улавливает код. Когда вы нажмете клавишу, клавиатура немедленно отправит код сканирования, после чего драйвер изменит ее на код ascii. Я хочу получить код сканирования, когда я нажимаю на клавиатуру, а не переведенный код сканирования из кода ascii. –

ответ

1

Информация о компании от Raw Input.

Вот статья о том, как Using Raw Input from C# to handle multiple keyboards. (Имеет образцы кода)

Это функция уровня ОС (WINAPI). Кажется, что вам нужно Регистрация для сырого ввода, тогда вы можете Выполнить стандартное/буферизированное чтение сырого ввода.

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