Как узнать какая клавиша нажата на уровне ядра?

Тема в разделе "WASM.NT.KERNEL", создана пользователем Miller Rabin, 17 авг 2007.

  1. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    Создал Устройство Клавиатуры присобачил его на KeyboardClass0 установил SetCompletionRoutine.
    Теперь получаю Сканкоды нажатых клавиш.

    Но как с уровня ядра определить в каком окне пользователь набирает текст?

    И как правильно сконвертировать Сканкод в символ в зависимости от аттрибута раскладки клавиатуры у потока этого окна?
     
  2. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    ИМХО, придется написать модуль в user mode
     
  3. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    Но вот что интересно. У IRP которые приходят в процедуру обработки моего драйвера DispatchRead
    есть такой параметр pIrp->tail.overlay.Thread в MSDN сказано, что
    Это чего же получается если ткнул кнопку в "блокноте", то тут будет указатель на TCB потока в "блокноте"?
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    может PIRP, а не PETHREAD ?)
    PETHREAD это тип самого поля Thread
     
  5. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    Great
    Да опечатка вышла
    pIrp->tail.overlay.Thread

    Только вопрос тот же. Чей это будет Thread в данном случае?
     
  6. SysProger

    SysProger New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    127
    меня тоже интересует этот вопрос.
     
  7. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    мне кажется что csrcc.exe
     
  8. VENOM4X

    VENOM4X New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2008
    Сообщения:
    29
    Может NtUserGetForegroundWindow?