Здравствуйте уважаемые!
Пишу класс для работы со сканером штрих-кода, который подключается в разрыв с клавиатурой. При чтении штрих-кода сканер отправляет в приложение последовательность цифр и подтверждает их enter-ом. Суть задумки в том чтобы с помощью ловушки определять последовательность сообщений от сканера, изымать эту последовательность из общей очереди сообщений, буферизировать у себя, и если она соответствует формату, генерировать свое событие, если нет – возвращать обратно в общую очередь.
Использую для этого hook типа WH_GETMESSAGE. Вопрос: каким образом можно вернуть последовательность сообщений в очередь, так чтобы они прошли не вызвав процедуру hook-а?
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
20-10-2008 00:34 | Сообщение от автора вопроса
Большое спасибо. Воспользовался вашим советом, все работает.
Поборол проблему следующим образом:
Когда с помощью PostMessage отправляю сообщения WM_KEYDOWN из своего буфера, то в каждом параметре сообщения wParam устанавливаю 15-й бит в 1. А, когда это сообщение попадает в процедуру ловушки проверяю установлен этот бит или нет. Если не установлен, то делаю стандартную обработку. Если - установлен, снимаю ничего более не делая.
Буду очень признателен если кто-то подскажет более логичный подход?..
wParam в WM_KEYDOWN является кодом виртуальной клавиши. Бывают ли коды начиная с $8000 и выше?
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.