LinuxForum.Fans
Тема

Перехват событий клавиатуры и мыши

Автор: damned 7 сообщений 7728 просмотров
#2209

Привет всем. Пишу проект связаный с перехватом событий клавиатуры и мыши (использую QT 4.6), вернее сказать подсчёт нажатых клавиш . Под виндовс всё работает нормально (использовал libhook), а вот под Linux никак не могу сделать. Проблема заключается в том что разработчики линукса , так сказать, сламали XRecord (функциия которая как раз для этого и предназначена) , и мне пришлось ити в обход ... посоветували попробывать что то вроде Xkb , но и эти попытки увенчались неудачей. Посоветуйте пожалуйста хоть что нибудь .. просто уже нет никаких вариантов.

P.S. Подcчитовать мне нужно ВСЕ нажатия клавиш , тойсть даже если програма в трее (или неактивна) подсчёт должен продолжатся.

#2328

Вопросик маленький: а что такое XRecord и зачем разработчикам линукс пришлось его ломать(не "ламать", кстати)?

#2337

XRecord - это функция как раз и предназначена для перехвата событий от клавиатуры и миши к X server.

Но при переделке XEvent (эт версии сервера 1.5-1.6) эта функция перестала работать как раньше .. об этом разработчики узнали .. но пофиксили этот баг у последних версиях X server (1.7 - 1.8) ..

Так вот .. то что они пофиксили этот баг эт хорошо .. но большенство нарада сейчас как раз и сидит под 1.5 - 1.6 и мне как раз для этих серверов нужно написать прогу ... вот теперь и незнаю что мне делать .. надеюсь хоть на какую нить помощь ..

#2347

Я был бы очень признателен, если бы Вы дали мне ссылку на прототип либо определение данной функции (.h or .cpp)

#2809

То есть, данная вещь не обновлялась с 2005 года?

#2818

нет ... просто обновления Xevent которые делали разработчики Linux понесли за собой вот такой баг ... и я сам не понимаю почему на него закрыли глаза ... кстати немало софта его используют и теперь он просто непригодный .

И я впринципе не собираюсь выяснять почему так случилось .. есть факт что X Record не работает .. и нужно найти другое решение ... вот за этим решением я и обратился к вам.

Войдите или зарегистрируйтесь, чтобы ответить.