Кто нить может подсказать каким образом мона отследить в какой области экрана была нажата левая клавиша мышки?
Допустим есть демон который постоянно отслеживает в какой области экрана была нажата мышка, и в зависимости от определенной последовательности посылает определенные сигналы, определённым приложениям... во как...
Программирование мыши
Модератор: Модераторы разделов
-
/dev/random
- Администратор
- Сообщения: 5456
- ОС: Gentoo
Re: Программирование мыши
А если уточнить задачу?
Нужно ли перехватывать мышь в консоли или в иксах? Что из себя представляют эти "области экрана"? Принадлежат ли соответствующие окна (если речь об иксах) другим программам, или той самой, которая должна перехватывать?
Если речь об иксах и о "чужих" окнах, то это, вообще-то, функции оконного менеджера. Единственное, на что могут рассчитывать "обычные" программы - это либо захватывать мышь функцией XGrabPointer (но на это время остальные программы работать с мышью не смогут), либо перехватывать события от корневого окна в надежде (далеко не всегда сбывающейся), что они не будут перехвачены по дороге к нему (как пример: xev -id `xwininfo -root | grep 'id: 0x' | sed 's/.*\(0x[^ ]*\).*/\1/'`).
А вообще-то, что в итоге требуется от программы?
Нужно ли перехватывать мышь в консоли или в иксах? Что из себя представляют эти "области экрана"? Принадлежат ли соответствующие окна (если речь об иксах) другим программам, или той самой, которая должна перехватывать?
Если речь об иксах и о "чужих" окнах, то это, вообще-то, функции оконного менеджера. Единственное, на что могут рассчитывать "обычные" программы - это либо захватывать мышь функцией XGrabPointer (но на это время остальные программы работать с мышью не смогут), либо перехватывать события от корневого окна в надежде (далеко не всегда сбывающейся), что они не будут перехвачены по дороге к нему (как пример: xev -id `xwininfo -root | grep 'id: 0x' | sed 's/.*\(0x[^ ]*\).*/\1/'`).
А вообще-то, что в итоге требуется от программы?
-
trinitropurgen
- Сообщения: 8
Re: Программирование мыши
Мышь надо перехватывать в иксах! Просто представь что запущено одно приложение в полноэкранном режиме. Допустим я щелкнул мышью 2 раза в верху приложения, и один раз в низу, он другому приложению послал определенный сигнал допустим что SIGUSR1. Если я щелкну один раз слева и 2 раза справа, то посылается другой сигнал, другому приложению допустим SIGINT! вобщем гдето так! Только мне надо знать в какой области экрана (координаты) была нажата мышь с точностью примерно в 200 пикселей! Я уже думал на счет XGrabPointer только нигде не нашел толкового описания =(
-
/dev/random
- Администратор
- Сообщения: 5456
- ОС: Gentoo
Re: Программирование мыши
а) Представить, что запущено, или оно действительно запущено? Т.е. этот "перехватчик" действительно должен заслонить собой весь экран, или остальные окна должны быть видны?
б) И вообще, что я тут наводящими вопросами занимаюсь? Кому из нас это нужно?
Что это за программа будет? Может, тут и перехватом не надо заниматься?
в) В man XGrabPointer описание достаточно подробное. Плюс можно глянуть в исходники xwininfo, где она активно используется.
б) И вообще, что я тут наводящими вопросами занимаюсь? Кому из нас это нужно?
А вообще-то, что в итоге требуется от программы?
Что это за программа будет? Может, тут и перехватом не надо заниматься?
в) В man XGrabPointer описание достаточно подробное. Плюс можно глянуть в исходники xwininfo, где она активно используется.
-
d_n_k
- Сообщения: 636
- ОС: Gentoo GNU/Linux
Re: Программирование мыши
написать свой менеджер окон,
либо написать расширения для X и в нем делать свои дела,
либо написать драйвер мыши
либо написать расширения для X и в нем делать свои дела,
либо написать драйвер мыши
все сказанное есть имхо...