![]() |
|
Модераторы: xvr |
![]()
|
|
| ecspertiza |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Есть софтина которая работает в фоне, по нажатию некоторой комбинации на клавиатуре должна запустить действие. Для перехвата клавиш использую
но если клавиша уже захвачена другим приложением то, получаю след. вывод в консоль
и вылет приложения. На мой взгляд было бы совершенно правильно перед захватом проверять, а не занята ли уже клавиша, но чет не могу ф-цию проверки найти, есть ли такая ? если есть как завется ? |
||||
|
|||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
По-моему в CORE нет. Но дажэ если бы и был (по-моему, в X-Resource добавили) -- был бы race condition после проверки. Так что лучшэ через XSetErrorHandler.
|
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Спасибо за наводку, немного погуглил про XSetErrorHandler вроде то что нужно, накидал вот такой пример
и он стало быть не работает |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Спасибо за наводку, немного погуглил про XSetErrorHandler вроде то что нужно, накидал вот такой пример
и он стало быть не работает |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
Можно, конечно, XSync вставить -- но я вообще не предполагал, что этот хэндлер Вы будете возвращать в прежнее положэние.
PS Кстати, раз это Qt -- а разве там нет своих аналогов XGrab*? |
|||
|
||||
| ecspertiza |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Намек понял
вот так заработало.
Те которые хукают клавиши со всей системы не нашел, есть библиотека Qxt она умеет хукать всю систему, но у нее проблемы с Print Screen. Спасибо за помощь |
||||||
|
|||||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
Ну и, в хэндлере, который вставляется навсегда -- по-моему имеет некоторый смысл вызывать default handler когда не знаешь, что случилось. Хотя это во многом дело вкуса, наверное.
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |