The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как отследить движение мыши в графической оболочке?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Как отследить движение мыши в графической оболочке?"  
Сообщение от igserogor email(ok) on 24-Июл-08, 00:22 
Подскажите пожалуйсто:
Как отследить события мыши и клавиатуры НЕ в окне своей программы, а вообще в графической оболочке?
То-есть узнать, например, сколько времени уже никто не нажимает на клавиши, и не двигает мышью?
Уже устал биться над этой проблемой. Помогите пожалуйсто если кто занет.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как отследить движение мыши в графической оболочке?"  
Сообщение от Volody on 24-Июл-08, 09:49 
для отслеживания координат курсора мыши воспользуйся функцией XQueryPointer. С определённой периодичностью смотреть не изменились ли координаты.
А по клавиатуре навскидку не скажу, попробуй посмотреть проект xneur, там постоянно отслеживают события клавиатуры.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как отследить движение мыши в графической оболочке?"  
Сообщение от igserogor email(ok) on 24-Июл-08, 16:57 
>для отслеживания координат курсора мыши воспользуйся функцией XQueryPointer. С определённой периодичностью смотреть
>не изменились ли координаты.
>А по клавиатуре навскидку не скажу, попробуй посмотреть проект xneur, там постоянно
>отслеживают события клавиатуры.

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

Скажите пожалуйсто, в какой библиотеке находится функция XQueryPointer?
Если не сильно затруднит, можете так-же написать пример ее использования?

----
События клавиатуры пока получается отслеживать через файл /dev/input/eventX (X - номер соответствующего файла, который определяется методом "тыка"). Мышь так же можно отслеживать с помощью соответствующего файла /dev/input/eventX (можно проверить в оболочке 'cat /dev/input/eventX')- это работает во многих дистрибутивах (думаю, что почти во всех). Но в Fedora9, не смотря на то, что клавиатуру по-прежнему можно отследить вышеописанным методом, мышь не выводит никаких данных.
---
Заранее спасибо за любую дополнительную информацию по этому вопросу.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как отследить движение мыши в графической оболочке?"  
Сообщение от Аноним (??) on 24-Июл-08, 12:02 
Если тебе нужно определять неактивность пользователя используй расширение XScreenSaver.
man 3 Xss.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как отследить движение мыши в графической оболочке?"  
Сообщение от igserogor email(ok) on 24-Июл-08, 17:53 
>Если тебе нужно определять неактивность пользователя используй расширение XScreenSaver.
>man 3 Xss.

Вам так-же спасибо.

Вообщем-то все началось с того, что нужно было отследить неактивность пользователя...
В начале, я просто хотел, чтобы скринсайвер в линукс проигрывал флеш (*.swf) видео (*.mpg и *.avi) и скринсайверы из винды (*.scr и/или *.exe - что по сути одно и то-же). Хотя если бы хоть что-то из этого удалось, то все остальное можно было бы перекодировать в соответствующий формат и пользоваться.
Мне не удалось добиться этого.
В основном, я экспериментировал с xscreensaver'ом, на его странице вот в этом разделе FAQ: http://www.jwz.org/xscreensaver/faq.html#mpeg, написано что это возможно и как именно это сделать, но эти способы не работают:
1. mpeg2dec_onroot - воспроизводит изображение серого экрана вместо ролика
2. gflashplayer - отсутствует по ссылке которая там приведена - ссылка позволяет скачатть программу flashplayer (НЕ "g"flashplayer) с сайта adobe. Программа flashplayer невоспринимает аргументы командной строки вообще, хотя flash ролики воспроизводит.
3. Я попробовал видеоплейер xine, который прекрасно проигрываетна корневом экране видеоролики (xine -R 'video.avi'), при запуске из консоли (кстати таким образом можно легко поставить на рабочий стол любые видео обои, например любимый фильм или клип), но при запуске той же комманды в xscreensaver'е - xine включается и тут же выключается, или проигрывает черный экран.
Вообщем я решил создать приложение которое моглобы осуществить это - и надо было отследить активность пользователя - я это сделал через файлы /dev/input/eventX, но когда обнаружил, что в новой версии Fedora - Fedora9 мышь таким образом не отслеживается - пришлось искать более совершенный метод - вдруг потом и клавиатура перестанет отслеживаться.
Я попробовал отследить события с помощью функций GTK, но надо указать указатель на widget в котором отслеживаются события - а что написать чтобы события отслеживались глобально а не в конкретном виджете неизвестно.
----
Мысли такие:
- Компьютер бесполезен, если не взаимодействеут с пользователем.
- Взаимодействие осуществляется через устройства ввода/вывода (с выводом проблем нет)
- Чтобы успешно писать программы надо знать как отследить события устройтсв ввода в системе в целом.
Более селкая проблема: как заставить линук проигрывать видео ролики во время бездейстивя пользователя.

Я занимаюсь этим в свободное от работы время уже более 2-х месяцев. Если у кого есть какие-то мысли пожалуйсто помогите мне.
---
Спасибо всем кто об этом хотябы раз задумается.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как отследить движение мыши в графической оболочке?"  
Сообщение от anonymous (??) on 24-Июл-08, 23:55 
Можешь посмотреть браузерный плагин для проигрывания флеша и Netscape Plugin Specification.  Мне почему-то кажется, что плагин можно заставить отрисовываться в любое окно.

http://www.mozilla.org/projects/plugins/
http://developer.mozilla.org/en/docs/Plugins

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Как отследить движение мыши в графической оболочке?"  
Сообщение от igserogor email(ok) on 25-Июл-08, 02:22 
>Можешь посмотреть браузерный плагин для проигрывания флеша и Netscape Plugin Specification.  
>Мне почему-то кажется, что плагин можно заставить отрисовываться в любое окно.
>
>
>http://www.mozilla.org/projects/plugins/
>http://developer.mozilla.org/en/docs/Plugins

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

Посмотрел плагины по вашему совету. Насколько смог понять - они работают в браузерах, а документация посвящена, в основном, тому как задействовать плагины в своих браузерах с помощью различных API. Это не поможет - браузеры не распознают опцию --root (я пробовал до этого, но попробовал еще раз firefox и konqueror).

Но на данный момент меня гораздо больше интересует вопрос: Как отследить события устройтсв ввода (мышь и клвиатура) в системе? Например, как узнать факт что на рабочем столе (или, более широко, в определенном окне) была нажата правая кнопка мыши, время когда она была нажата последний раз и координаты в которых находился указатель (ну или хоть что-то из этого)? Тогда можно решеть гораздо больше вопросов, чем просто создание скринсейвура с поддержкой мультимедиа.

Если можете чем-то помочь, очень прошу напишите в эту тему.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру