Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Hook на клавиатуру. [D6, WinME, WinXP]


AnthreX ©   (2003-08-25 02:48:00) 

У меня такой вопрос, когда ставишь hook на клавиатуру, функция:
function KeyboardProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): Integer; stdcall;
возвращает параметры: wParam – код нажатой клавиши и lParam - набор битовых флагов с дополнительной информацией.
Так вот проблема следующая:
wParam – возвращает код заглавного английского символа, независимо от регистра и раскладки клавиатуры. Как от этого избавиться? Например если я нажимаю клавишу “й”, то как определить, что нажата именно “й”, а не “Q”?
lParam – хоть и содержит флаги, но как я понял такого рода информацию из него не вытянешь. Что делать?


AnthreX   (2003-08-28 02:50:00) [1]

Спасибо. Идея понятна, а как, зная код кодовой страницы конвертировать текст. Может, есть какая-нибудь API функция или придется писать ее самому?


KosilkA   (2003-08-26 15:04:00) [2]

знакомая проблема :-)
GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow,nil))


AnthreX   (2003-08-26 03:13:00) [3]

Я ставлю WH_KEYBOARD.


Song   (2003-08-25 09:28:00) [4]

Какой именно хук ставишь? WH_KEYBOARD ? По call-back ф-ии это не поймёшь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо