Qt блокировка мыши и клавиатуры |
Здравствуйте, гость ( Вход | Регистрация )
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 |
Так как изначально было сказано, что это нужно под винды, то воспользовавшись функциями SetWindowsHookEx и UnhookWindowsHookEx, я сделал то, что требовалось. Но потом выяснилось, что это нужно сделать под nix Логично что winAPI нет под линуксом. Как такое реализовать не представляю. Поставить флаг "поверх всех окон"? Так же у меня возник вопрос, как в Qt сделать так, чтобы после запуска приложения, оно не появлялось в taskbar`e, а появлялось в трее Есть очень хороший пример в составе Qt - systray кличут. Там многое чего по трею, вплоть до того как вообще запретить закрытие приложения. |
|
|
Skier78rus |
31.8.2011, 13:39
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 13.1.2010 Пользователь №: 1368 Спасибо сказали: 0 раз(а) Репутация: 0 |
Логично что winAPI нет под линуксом. Как такое реализовать не представляю. Поставить флаг "поверх всех окон"? Это я прекрасно понимаю Я уже нашел консольные команды такие как: xinput set-int-prop 3 \"Device Enabled\" 8 0 И понял, что их можно запустить через QProcess, что пока у меня не вышло. Есть очень хороший пример в составе Qt - systray кличут. Там многое чего по трею, вплоть до того как вообще запретить закрытие приложения. Спасибо, сейчас посмотрю. |
|
|
silver47 |
31.8.2011, 13:47
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Я уже нашел консольные команды такие как: 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 |
Нужно понимать, что для их работы, наверняка требуются права рута, а ваша программа запускается с правами рядового пользователя. Если с QProcess не работали, то рекомендую начать с малого, например запустить mc. Я сразу проверил их через консоль, они не требуют права рута. Под никсом работаю в основном в mc(если я правильно понял midnight commander). На данный момент уже через QProcess и xinput --list удалось получить список устройств, и определить id мыши. |
|
|
wiz29 |
31.8.2011, 15:24
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
|
|
|
Текстовая версия | Сейчас: 30.12.2024, 19:52 |