Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Драйвер фильтр для мыши  (Прочитано 6010 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Scorp__)
Молодой специалист

ru
Offline Offline
Пол: Мужской

« : 11-05-2004 16:25 » 

Добрый день. Возникла у меня такая ситуация. Есть мышка, на которой постоянно будет нажиматься средняя кнопка (такое устройство к мышке припаяно  Улыбаюсь ). А Windows не должна видеть что кнопка нажимается и самое главное нужно подсчитать сколько этих нажатий происходит в минуту и отдать эту информацию всем приложениям которые захотят ее увидеть.

Первую (легкую  Улыбаюсь ) часть проблемы я решил с помощью верхнего фильтра над драйвером класса мыши, использовав пример с sysinternals для клавиатуры.

А вот как подсчитать эти клики придумать не могу, и не знаю как организовать внешний интерфейс драйвера с приложениями пользовательского режима   Жаль

Помогите, пожалуйста,    Вот такой я вот  

Большое всем спасибо.
Записан

- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
Scorp__)
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 14-05-2004 08:20 » 

Да чего-то никто не отвечает  Жаль  

Может быть по-другому.

Каким образом можно организовать доступ к какой-нибудь информации подсчитанной в драйвере из пользовательского приложения.

И глупый вопрос  :?  Как можно сохранить время полученное функцией NtQuerySystemTime(), чтобы иметь возможность обратиться к нему при следующем запуске процедуры завершения обработки IRP пакета.

Спасибо за ответы.
Записан

- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 14-05-2004 08:36 » 

Надо делать DispatchRoutine и обрабатывать IOCTL.

Заводишь для драйвера имя и объявляешь его в хедере.  Заводишь себе набор IOCTL, объявляешь их в хэдере.  

При инициализации драйвера он должен сообщить ядру своё имя.  В коде драйвера делаешь DispatchRoutine, которая обрабатывает твои IOCTL.

Пользовательское приложение создает handle посредством CreateFile на драйвер с твоим именем.  Потом вызывает DeviceIoControl с одним из твоих IOCTL.

Примеров в DDK море.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Scorp__)
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 14-05-2004 08:56 » 

Супер, спасибо. Просто недавно только начал драйвера писать. И периодически встаю в тупик, даже не зная в какую сторону копать.  Улыбаюсь
Записан

- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines