Помимо того, что данная функция работает тока в NT-подобные системах (в наши дни это мелочь), у нее есть еще один недостаток:
wParam
[in] Specifies the identifier of the keyboard message. This parameter can be one of the following messages: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, or WM_SYSKEYUP.
т.е. вожделенного WM_CHAR тут нет... Видимо, мое решение (описанное в соседнем сообщении), единсвенное (или не единсвенное) верное!
Здравствуйте, VladGal, Вы писали:
VG>Здравствуйте, MaelStrom, Вы писали:
MS>>В своей проге, хочу отлавливать всю активность с клавиатуры.
MS>>Сделал хук на клаву с функцией фильтром. Если я не ошибаюсь, через эту функцию проходят
MS>>WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP, WM_SYSKEYDOWN и WM_CHAR. А мне надо только обрабатывать
MS>>сообщение WM_CHAR. Как его отличить от других сообщений?
VG>В SetWindowsHookEx надо указать тип функции перехвата сообщений WH_KEYBOARD_LL,
VG>тогда callback-функция на которую передаваеться указатель в SetWindowsHookEx, имеет следующий прототип:
VG>LRESULT CALLBACK LowLevelKeyboardProc( int code, WPARAM wParam, LPARAM lParam )- где wParam — идентификатор сообщения.