Получить информацию о процессе в фильтре клавиатуры

Тема в разделе "WASM.NT.KERNEL", создана пользователем AlexCasual, 8 окт 2011.

  1. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    Интересует возможность получения имени процесса,при перехвате нажатия клавиш в фильтре клавиатуры.
    Есть ли способ?
     
  2. 100gold

    100gold New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2010
    Сообщения:
    165
    В драйвер клавиатуры запрос посылает процесс csrss, который затем (когда получил ответ) смотрит какое окно имеет фокус ввода и посылает этому окну сообщение WM_KEY(ну или там как оно называется, их там несколько). Проще всего тут будет обойтись юзермодным сервисом, который драйвер-фильтр должен уведомлять о наступлении события "клавиша нажата" и сразу же отпускать IRP, а сервис уже дёрнет API getforegroundwindow и дальше определит процесс.

    Если не нравится ситуация что "пока IRP дойдёт до csrss и он его обработает окно может сменится", то надо ставить хук в самом csrss, т.к. помимо клавиатурного ввода этот процесс ещё тучу вещей делает и когда конкретно он будет обрабатывать это событие знает только он