2009-10-27 3 views
1

можно ли отредактировать нажатие клавиши с помощью крючка клавиатуры winapi? ну, не neccesary крючок клавиатуры, но нечто подобное ..изменить нажатие клавиши на крючок (c/C++)

я хочу сделать что-то вроде этого:

пользователь нажимает клавишу «A»

моя функция добавляет 1 к виртуальной клавиатурным (просто пример)

'A' становится 'B'

и 'B' отправляется в приложение назначения

спасибо!

ответ

1

Во-первых, вам нужен Keyboardhook. Вы устанавливаете фильтр, и функция фильтра получает код виртуальной клавиши и состояние клавиатуры во время крючка клавиатуры. Затем вы можете изменить код виртуальной клавиши.

Дополнительные ссылки:

http://msdn.microsoft.com/en-us/library/ms644990(VS.85).aspx

http://msdn.microsoft.com/en-us/library/ms644984(VS.85).aspx

+0

если я понимаю вас правильно, я уже пробовал это. вы имеете в виду просто изменить виртальный код в KBDLLHOOKSTRUCT, полученный в клавиатуре? – shuwo

+0

от того, что я прочитал, вот что вам нужно сделать. –

+0

Да, он работает очень хорошо именно так (однажды я это сделал). Обратите внимание, что у вас должна быть хорошая причина для этого, так как большинство людей считают это объективным, если не вредоносным, и, по крайней мере, если вы установите общесистемный крючок, антивирусное программное обеспечение, скорее всего, также поднимет оповещение (обхват приложения похоже, не поднимает предупреждения, по крайней мере здесь). – Damon

0

Я думаю, что вы можете сделать это, съедая нажатие клавиши, введенные пользователем с применением хук клавиатуры. и генерации key_event символа, который вы хотите.

0

Вы не можете напрямую изменить значение виртуального ключа в KBDLLHOOKSTRUCT. Вместо этого верните 1 в функцию hook после отправки сообщения с измененным значением виртуального ключа.

Смежные вопросы