![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Имеется хук на клавиатуру, заданный так:
Требуется пропускать лишь цифры. Прочитал немного про этот метод - так понял, что через HookProct2 и проходят все нажатия-сообщения, и у меня эта процедура присваивает всем нажатиям -1, и клавиатура считай отключается. Чтобы пропускать лишь цифры, нужно как-то различать сообщения. Я смотрел входные параметры при разных нажатиях - nCode всегда=0, WParam=256, Data - каждый раз другое число, закономерностей я не заметил, на ASCII-коды не похоже. Или, может, всё это дело нужно в библиотеку запихнуть? -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Прочитал немного про этот метод - так понял, что через HookProct2 и проходят все нажатия-сообщения, и у меня эта процедура присваивает всем нажатиям -1, и клавиатура считай отключается. Чтобы пропускать лишь цифры, нужно как-то различать сообщения. Если б ты внимательно читал MSDN, то заметил бы, чтоЦитата The lParam parameter to the filter function contains a pointer to an EVENTMSG structure. , то есть:function HookProct2(nCode: Integer; MsgID: WParam; Data: LParam): LResult; stdcall; |
Unconnected |
![]()
Сообщение
#3
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Мм а дальше его как пропускать? Я попробовал так:
function HookProct2(nCode: Integer; MsgID: WParam; Data: LParam): LResult; stdcall; И нифига.. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Сорри, это я ошибся. Надо не к PMsg приводить, там (в случае WH_KEYBOARD_LL) указатель на другую структуру будет. Вот так:
function HookProct2(nCode: Integer; MsgID: WParam; Data: LParam): LResult; stdcall; |
Unconnected |
![]()
Сообщение
#5
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Спасибо, работает как надо
![]() -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
![]() |
Текстовая версия | 11.07.2025 0:37 |