![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
Python | USB-мышь
|
Пользователь Сообщения: 97 |
Всем привет, у меня возникла одна проблемка: необходимо запустить демон в линухах, который будет следить в фоне за поведением USB-мышки, а точнее за тем, какие кнопки на ней зажаты (левая или правая). Вот тут-то и проблема, а как за мышкой следить-то? Кто может помогите, меня интересует слежка именно за USB-мышкой. Пробовал hexdump устройства, но по какой-то странной причине он мне разные значения дает, может не так пробовал, вот код.
Может надо с popen2 поиграться? Кто знает, подскажите, заранее спасибо. |
|
------- Отправлено: 00:14, 13-01-2007 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать Well7
А X'ы запущены? Если да, то можно через Xlib за мышой следить, скорее всего. добавлено чуть позже. Немного порылся в инете. Как таки получать все события от мыши написано здесь, в секции "Grabbing the Keyboard and Pointer". Биндинг Xlib для питона тоже существует. |
------- Последний раз редактировалось ivank, 13-01-2007 в 03:16. Отправлено: 02:54, 13-01-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 97
|
Профиль | Отправить PM | Цитировать ivank
Неа, иксы не запущены, только консоль. Может как-то через gpm можно? |
------- Отправлено: 11:38, 15-01-2007 | #3 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать Честно говоря мне с gpm разбираться лень (я с ним даже как простой пользователь не общался никогда).
Так что рекомендую поизучать /usr/src/linux/drivers/input/mousedev.c. В частности функцию mousedev_packet. Пакет данных на самом деле очень простой, кажется. Особенно если нас интересуют только нажатые клавиши. Единственная мелочь - протоколы бывают 3-х и 4-х байтовые (обычный PS2 - 3хбайтовый, у меня именно так). Информация о трёх первых нажатых кнопках содержится в трёх младших битах первого байта. Всё. Добавлено чуть позже Вот, написал относительно правдоподобный обработчик клика: #!/usr/bin/python f = file("/dev/input/mice") l, r = 0, 0 while 1: buttons = ord(f.read(3)[0]) nl, nr = buttons&1, buttons&2 if l and not nl: print "left release" if r and not nr: print "right release" l, r = nl, nr Пораскинул мозгами и понял, что /dev/input/mice по умолчанию всегда выдаёт в PS2 всё. И чтобы перевести её в расширенный режим надо что-то сделать. Вывод на сделан на основе того, что мышь у меня со скролом (т.е. привтворяется пятикнопочной), а PS2 несёт информацию только о 3-х кнопках. При этом иксы питаясь от того же /dev/input/mice на скролл реагируют -> каким-то образом переводят его в расширенный режим (т.е. один из двух 4-х юайтовых протоколов). Как это делается - ни малейшего представления. |
------- Последний раз редактировалось ivank, 18-01-2007 в 18:40. Отправлено: 18:28, 18-01-2007 | #4 |
Пользователь Сообщения: 97
|
Профиль | Отправить PM | Цитировать ivank
Огромное спасибо, я даже и не подумал про mousedev.c. Рулез, Спасибо. |
|
------- Отправлено: 11:49, 20-01-2007 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мышь - Usb-мышь Acer | mad chemist | Прочее железо | 0 | 15-02-2009 14:03 | |
Мышь и USB | ***SERG*** | Непонятные проблемы с Железом | 9 | 28-01-2009 06:32 | |
мышь USB на мать 430VX c USB не подключается | OmegaAAV | Непонятные проблемы с Железом | 14 | 18-12-2004 12:17 | |
Нотебук и USB мышь | Guest | Microsoft Windows 95/98/Me (архив) | 1 | 16-09-2003 09:51 | |
Мышь и USB | Roluk | Microsoft Windows 95/98/Me (архив) | 3 | 31-03-2003 18:50 |
|