crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Qt блокировка мыши и клавиатуры
Skier78rus
  опции профиля:
сообщение 31.8.2011, 12:51
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 13.1.2010
Пользователь №: 1368

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день.

Мне нужно написать приложение, которое по команде от сервера будет выводить во весь экран картинку, и блокировать все действия мыши и клавиатуры.


Так как изначально было сказано, что это нужно под винды, то воспользовавшись функциями SetWindowsHookEx и UnhookWindowsHookEx, я сделал то, что требовалось.

Но потом выяснилось, что это нужно сделать под nix. Почитав в интернете, я не нашел ничего похожего на команды которые я использовал под винды.


Подскажите в какую сторону копать.

Так же у меня возник вопрос, как в Qt сделать так, чтобы после запуска приложения, оно не появлялось в taskbar`e, а появлялось в трее( сверху справа там где часы) или вообще нигде не появлялось(чтобы была видна только через команду top).



Буду очень благодарен любой информации.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 31.8.2011, 13:22
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Skier78rus @ 31.8.2011, 15:51) *
Так как изначально было сказано, что это нужно под винды, то воспользовавшись функциями SetWindowsHookEx и UnhookWindowsHookEx, я сделал то, что требовалось.
Но потом выяснилось, что это нужно сделать под nix

Логично что winAPI нет под линуксом. Как такое реализовать не представляю. Поставить флаг "поверх всех окон"?

Цитата(Skier78rus @ 31.8.2011, 15:51) *
Так же у меня возник вопрос, как в Qt сделать так, чтобы после запуска приложения, оно не появлялось в taskbar`e, а появлялось в трее

Есть очень хороший пример в составе Qt - systray кличут. Там многое чего по трею, вплоть до того как вообще запретить закрытие приложения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Skier78rus
  опции профиля:
сообщение 31.8.2011, 13:39
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 13.1.2010
Пользователь №: 1368

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(silver47 @ 31.8.2011, 14:22) *
Логично что winAPI нет под линуксом. Как такое реализовать не представляю. Поставить флаг "поверх всех окон"?


Это я прекрасно понимаю 8)

Я уже нашел консольные команды такие как:

xinput set-int-prop 3 \"Device Enabled\" 8 0

И понял, что их можно запустить через QProcess, что пока у меня не вышло.

Цитата(silver47 @ 31.8.2011, 14:22) *
Есть очень хороший пример в составе Qt - systray кличут. Там многое чего по трею, вплоть до того как вообще запретить закрытие приложения.


Спасибо, сейчас посмотрю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 31.8.2011, 13:47
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Skier78rus @ 31.8.2011, 16:39) *
Я уже нашел консольные команды такие как:
xinput set-int-prop 3 \"Device Enabled\" 8 0
И понял, что их можно запустить через QProcess, что пока у меня не вышло.


Нужно понимать, что для их работы, наверняка требуются права рута, а ваша программа запускается с правами рядового пользователя. Если с QProcess не работали, то рекомендую начать с малого, например запустить mc.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Skier78rus
  опции профиля:
сообщение 31.8.2011, 15:01
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 13.1.2010
Пользователь №: 1368

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(silver47 @ 31.8.2011, 14:47) *
Нужно понимать, что для их работы, наверняка требуются права рута, а ваша программа запускается с правами рядового пользователя. Если с QProcess не работали, то рекомендую начать с малого, например запустить mc.



Я сразу проверил их через консоль, они не требуют права рута. Под никсом работаю в основном в mc(если я правильно понял midnight commander).

На данный момент уже через QProcess и xinput --list удалось получить список устройств, и определить id мыши.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 31.8.2011, 15:24
Сообщение #6


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


смотреть тут пример system tray
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.3.2024, 13:24