Вниз
Скачать: CL | DM;

кодировка клавиатуры   Найти похожие ветки 

 
gate A20   (2002-04-24 20:13) [0]

Ставится глобальный хук на wh_keyboard, необходимо сохранять все нажатия клавиш. Возникает проблема кодировки - GetKeyNameText(Lparam) - где Lparam - то, что перехватил хук - не реагирует на текущий layout клавиатуры, и не реагирует на нажатие клавиши типа Shift+кнопка. Ну с последним более-менее ясно - можно снимать GetKeyboardState, и анализировать, какие же кнопки сейчас нажаты (хотя это тоже трансректальный способ, подскажите как лучше - буду премного благодарен). Что же делать с layout"ом - вовсе непонятно. Тут узнал, что layout клавиатуры может быть свой для каждого потока (цитата из МСДН), но как получить хэндл этого потока? (В смысле того потока, куда идёт перехваченое сообщение). Наверно, магическим образом узнав хэндл этого потока, по нему - layout клавиатуры, в зависимости от последнего можно будет ручками перекодировать Wparam+Lparam. Помогите чайнику, а?


 
Raptor ©   (2002-04-25 14:47) [1]

Вообще, то вся нужная информация о нажатых клавишах (в том числе и Shift) передается тебе в функцию хука. Надо только повнимательнее хелп почитать. А насчет Layout, то в самом деле тебе надо его узнавать для каждого процесса в отдельность, така как у каждого процесса он может быть разный. И магического здесь ничего нет, так как перехват нажатий клавиш происходит в адр. ространстве процесса окно которого в даный момент активно. Тоесть легко узнать хендл самого процесса или потока(GetWindowThreadProcessId).



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-77462
Мефодий
2002-06-10 19:48
2002.06.24
Ошибка в команде NewPage при использовании QuickReport


1-77347
Niko.
2002-06-12 23:26
2002.06.24
Hint для меню


1-77496
koty
2002-06-07 09:26
2002.06.24
Help по Дельфи


6-77542
Heh
2002-04-15 13:10
2002.06.24
Братва, где можно взять нормальные доки в электр. виде


3-77259
juster
2002-05-30 09:13
2002.06.24
TQuery в runtime




   Наверх