Автор: Skier78rus 31.8.2011, 12:51
Добрый день.
Мне нужно написать приложение, которое по команде от сервера будет выводить во весь экран картинку, и блокировать все действия мыши и клавиатуры.
Так как изначально было сказано, что это нужно под винды, то воспользовавшись функциями SetWindowsHookEx и UnhookWindowsHookEx, я сделал то, что требовалось.
Но потом выяснилось, что это нужно сделать под nix. Почитав в интернете, я не нашел ничего похожего на команды которые я использовал под винды.
Подскажите в какую сторону копать.
Так же у меня возник вопрос, как в Qt сделать так, чтобы после запуска приложения, оно не появлялось в taskbar`e, а появлялось в трее( сверху справа там где часы) или вообще нигде не появлялось(чтобы была видна только через команду top).
Буду очень благодарен любой информации.
Автор: silver47 31.8.2011, 13:22
Цитата(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
Цитата(silver47 @ 31.8.2011, 14:22)

Логично что winAPI нет под линуксом. Как такое реализовать не представляю. Поставить флаг "поверх всех окон"?
Это я прекрасно понимаю
Я уже нашел консольные команды такие как:
xinput set-int-prop 3 \"Device Enabled\" 8 0
И понял, что их можно запустить через QProcess, что пока у меня не вышло.
Цитата(silver47 @ 31.8.2011, 14:22)

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

Я уже нашел консольные команды такие как:
xinput set-int-prop 3 \"Device Enabled\" 8 0
И понял, что их можно запустить через QProcess, что пока у меня не вышло.
Нужно понимать, что для их работы, наверняка требуются права рута, а ваша программа запускается с правами рядового пользователя. Если с QProcess не работали, то рекомендую начать с малого, например запустить mc.
Автор: Skier78rus 31.8.2011, 15:01
Цитата(silver47 @ 31.8.2011, 14:47)

Нужно понимать, что для их работы, наверняка требуются права рута, а ваша программа запускается с правами рядового пользователя. Если с QProcess не работали, то рекомендую начать с малого, например запустить mc.
Я сразу проверил их через консоль, они не требуют права рута. Под никсом работаю в основном в mc(если я правильно понял midnight commander).
На данный момент уже через QProcess и xinput --list удалось получить список устройств, и определить id мыши.
Автор: wiz29 31.8.2011, 15:24
http://doc.qt.nokia.com/4.2/desktop-systray.html