Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.24;
Скачать: 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 вся ветка

Текущий архив: 2002.06.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
4-77688
Y_Vovan
2002-04-26 15:56
2002.06.24
Как програмно создать юзера с паролем в Win98,Nt,W2K,Xp


14-77584
Мальфет
2002-05-21 07:45
2002.06.24
Хто знает, что за байда?


1-77395
Сатир
2002-06-10 15:29
2002.06.24
Использование тэгов компонентов


3-77325
Mirovodin
2002-05-25 15:05
2002.06.24
Выборка из дерева


6-77541
DT
2002-04-14 16:23
2002.06.24
Сниффер