Вопрос № 41682: Уважаемые эксперты! Подскажите, как через lparam определить нажатие клавиш Alt, Ctrl. Какие у них скан-коды? Что в lparam определяют биты 24-30?...
Вопрос № 41.682
Уважаемые эксперты! Подскажите, как через lparam определить нажатие клавиш Alt, Ctrl. Какие у них скан-коды? Что в lparam определяют биты 24-30?
Отвечает: Mihasic
Здравствуйте, Александр А.А.!
Вообще неплохо бы уточнить, какое сообщение вы имеете ввиду (WM_CHAR, WM_KEYDOWN или WM_KEYUP)
Тут вобщем все по этим сообщениям написано:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_keydown.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_keyup.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_char.asp
Приложение:
Ответ отправил: Mihasic (статус: 1-ый класс)
Ответ отправлен: 30.04.2006, 08:56
Отвечает: Sergijj
Здравствуйте, Александр А.А.!
Простите, я не понял, что Вы имеете в виду под "lparam", но если Вам необходимо читать состояния клавиш Ctrl, Alt, Shift, сообщаю:
Читать напрямую буфер клавиатуры Вы можете через порт 60h, а управлять контроллером клавиатуры - через порт 64h.
Указатели на начало и конец буфера клавиатуры лежат по адресам 041Ah и 041Ch соответственно.
Если нужен "облагороженный" scan-code клавиши - можно вызвать int 16h (ax = 01).