механизм получения сообщений нажатий клавиш

Тема в разделе "WASM.WIN32", создана пользователем rpy3uH, 2 дек 2010.

  1. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    Меня интерисует такой вопрос: допустим была нажата какая-либо клавиша (пробел, буква А, цифра 5 и т.д.) сигнал о том что была нажата кнопка посылается всем процессам или только GUI процессам? меня интерисует именно user-mode составляющая. Есть ли такой компонент в user-mode который находясь в любом процессе, всегда знает какие кнопки нажимаются. или есть ли такой процесс, который всегда знает какие кнопки нажимаются? (наподобие csrss.exe всегда имеет хендлы всем процессов, меня интерисует аналогия с клавиатурой)
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Если интересуют общие механизмы, то следует погуглить\почитать на тему прерываний клавиатуры, кейлоггеров и т.п. (например, это)
    1) низкоуровневый клавиатурный хук - SetWindowsHookEx(WH_KEYBOARD_LL, ...)
    2) опрос клавы через GetKeySate\GetAsyncKeyState (по таймеру и т.п.)
    3) в XP и выше - использование Raw Input
    Он самый и есть, поскольку в его контексте и работает raw input thread (RIT)
     
  3. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    это я всё знаю. отлов и логирование нажатий клавиш это не задача. Я просто хочу узнать как вообще прогамма может о нажатиях на кнопки.

    это уже что-то новенькое, спасибо
     
  4. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Драйвер-фильтр
     
  5. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    ну драйвер-то всё может узнать. меня user mode интересует