Добрый день, господа
Требуется выполнить захват данных с мыши, по возможности до посыла сообщений Windows (вроде WM_MouseDown).
Захват должен производиться до того, как все устройства ввода "сливаются" в один поток, чтобы можно было получать данные, к примеру, от тачпада и внешней мыши, независимо.
Цель - сделать поддержку жестов на тачпаде, при этом передав все функции управления курсором Windows на внешнюю мышь (монопольно).
Очень бы помог именно исходник на FPC, а не советы вроде: "Гугли hook на Delphi"
Низкоуровневый перехват событий мыши
Модератор: Модераторы
Эта задача явно из области написания драйверов нулевого кольца. Можно посмотреть WinDDK. Там наверняка есть примеры работы с мышью на низком уровне.
Да, и кстати, мне так кажется, что решать её будет проще на сях.
Да, и кстати, мне так кажется, что решать её будет проще на сях.
Вообще для подобных целей иногда удобно использовать DirectInput из состава MS DirectX. Получать устройства и отслеживать их в различных потоках.
2Fedex, DI не подойдет под условия задачи. Мне нужен как можно более хардкорный доступ к "железу".
И в любом случае, я милостиво прошу пример
И в любом случае, я милостиво прошу пример
Мне нужен как можно более хардкорный доступ к "железу".
WinDDK наше всё. Поставь его. Там есть примеры работы с устройствами ввода на си.
P.S. Как вариант можно покопать в сторону функции SetWindowsHookEx. Она позволяет ставить перехватчики в том числе и на мышиные события. Хотя, если
нужен как можно более хардкорный доступ к "железу".
то скорее всего нужно внимательно посмотреть в сторону WinDDK
P.P.S Пример на C# использующий SetWindowHookEx для перехвата событий мыши
http://blogs.msdn.com/toub/archive/2006 ... 89468.aspx
2Вирус, SetWindowHookEx не хочется использовать. Вообще хуки не хочется использовать.
Но видимо придется WH_MOUSE_LL
А хотелось прямо с HID.
Но видимо придется WH_MOUSE_LL
А хотелось прямо с HID.
Есть в HID.pas HIDKomponente, из библиотеки JEDI. В принципе должно импортироваться. Примеры тоже есть там.
На мой взгляд в решении вашей задачи выбран НЕ ВЕРНЫЙ путь. Вы хотите:
Тут возникают 2 проблемы:
1) touchpad в ноутбуках работает через PS/2(на всех ноутах наверное)
2) HID - это USB устройство, и на его монопольный захват нет инструкций, т.е. драйвер в любом случае получит и обработает сообщения.
На мой взгляд в решении вашей задачи выбран НЕ ВЕРНЫЙ путь. Вы хотите:
сделать поддержку жестов на тачпаде, при этом передав все функции управления курсором Windows на внешнюю мышь
Тут возникают 2 проблемы:
1) touchpad в ноутбуках работает через PS/2(на всех ноутах наверное)
2) HID - это USB устройство, и на его монопольный захват нет инструкций, т.е. драйвер в любом случае получит и обработает сообщения.
2 Steve
Неправда ваша, есть проект Multi-Touch Vista, там как раз реализован "подменный" функционал, когда все позиционные устройства можно подключить как каналы устройства мультисенсорного ввода. И нам такое нужно, на паскале
За наводку на класс HID спасибо
Тут возникают 2 проблемы:
Неправда ваша, есть проект Multi-Touch Vista, там как раз реализован "подменный" функционал, когда все позиционные устройства можно подключить как каналы устройства мультисенсорного ввода. И нам такое нужно, на паскале
За наводку на класс HID спасибо
