Можно ли отловить нажатие дополнительных(!) клавиш мышки если нет драйверов?
Сразу скажу, что WH_MOUSE_LL не справился...
Заметил я недавно что на моей Logitech RX300, которая верой и правдой служит мне уже 21 год, на колёсике есть кнопки позволяющие нажимать его вправо и влево. И вспомнил, что когда трава была зеленее а небо голубее, я действительно ставил драйвера которые позволяли задействовать эти клавиши. Впрочем тогда я сразу убедился что эти кнопки совершенно бесполезные. В том же редакторе Delphi они давали возможность сдвинуть текстовый экран на 10 символов в сторону, но это было жутко неудобно. И в дальнейшем драйвера больше не ставились.
Сама мышка вроде как USB'шная (её хвост имеет USB-папу на конце), но этот конец вставляется в PS/2 переходник, и уже этим концов входит в порт компьютера. Да-да, компьютер тоже не намного младше мышки :)
Может правильней было спросить иначе - "
Можно ли получить поток проходящий через PS/2 порт мышки?" Хотя она же может быть подключена и без переходника напрямую через USB, а следовательно второй вопрос - "
Можно ли прозрачно отслеживать поток данных бегущих по USB к которому подключена мышь?"
Конечной целью является желание повесить на дополнительную кнопку собственный обработчик жестов:
- нажал на кнопку и дёрнул мышку вПраво - запустилась программа
- нажал на кнопку и дёрнул мышку вЛево - сработала комбинация клавиш Ctrl+Shift+что-то
- нажал на кнопку и дёрнул мышку вВерх - выполнилось несколько наборов комбинаций клавиш
- нажал на кнопку и дёрнул мышку вНиз - активным стало определённое окно в системе
По большому счёту хочу сделать нечто подобное "радиальному меню" в мышке CadMouse от 3DConnexion.
В общем WinAPI мне кажется я знаю не плохо, и в создании управлением мышкой проблем не вижу. Но знание WinAPI мне ни как не помогло отловить само нажатие дополнительных клавиш. Клавиши VK_XBUTTON1 и VK_XBUTTON2 (которые предусмотрительно не прописаны в Source\Rtl\Win\windows.pas) обнаружить не удалось. Создал Hook с WM_MOUSE_LL, но он показал что ни каких событий на нажатия этих клавиш система не фиксирует. Возможно ли читать потоки PS/2 и USB не мешая самому ходу данных - не знаю. А если "нельзя", то означает что я должен писать свой собственный драйвер мыши? Может это совсем и не сложно - просто прочитать движение мыши и передать в винду эти события? Может кто-то думал в этом направлении и поделится мыслями?