На языке C, используя прерывание клавиатуры, как я могу отобразить альтернативную клавишу из того, что набрал пользователь? Например, когда я нажимаю «Q» на клавиатуре, на экране должна отображаться «A».
Использование прерывания клавиатуры для отображения чего-то отличного от того, что набрал пользователь
comment
Тьфу, из-за того, что она была отмечена как вики сообщества, и я тот, кто отредактировал ее, чтобы она была последовательной, теперь похоже, что я был тем, кто задал вопрос. Это как-то некрасиво...
- person Domenic   schedule 02.11.2008
comment
Вероятно, вам следует прокомментировать среду, в которой вы работаете. Mac? XP? линукс? Какой компилятор вы используете? Для чего вы собираетесь это использовать? Предоставление лучшего контекста, вероятно, даст лучшие ответы.
- person EvilTeach   schedule 02.11.2008
Ответы (2)
Обработка прерывания клавиатуры не является хорошей идеей на любой платформе. А как насчет usb-клавиатуры, нет прерывания, которое вы можете поймать?
Для ОС Windows вы, вероятно, захотите написать драйвер фильтра, вы можете найти эту запись, частично актуальную.< br> Образец драйвера фильтра клавиатуры можно найти здесь.
Для Linux вам, вероятно, нужно пропатчить драйвер слоя HID. Mac полностью вне моей компетенции :)
person
Community
schedule
02.11.2008
Нам нужно немного больше информации о вашей среде.
Насколько я понимаю Ваш вопрос, Вы хотите заменить обработчик прерывания клавиатуры на свой таким образом:
- Сохраните адрес входа исходного обработчика клавиатуры.
- Установите свой собственный, который вызывает оригинал и манипулирует значением кода ключа.
Однако в большинстве современных операционных систем гораздо проще определить и установить новую раскладку клавиатуры.
person
Community
schedule
02.11.2008