|
Модераторы: xvr |
|
_GRIN_ |
|
|||
одинокий падаван Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
Здравствуйте.
Пишу программу, которая должна работать как банкомат - т.е. в полноэкранном режиме и не допускать пользователя (за исключением админа) к каким либо средствам ОС (включая терминалы). Программа запускается как демон. ОС Линукс (Мандрива). Облочка - гном. С перехватом хоткеев возникла проблема. Если то что присылает X11 я ещё могу прехватить до оконного мэнеджера (гном), то с переключением терминалов - не получается. Поясняю (Alt+F4, Alt+F2, Ctrl+Alt+D - могу, а вот Ctrl+Alt+F3 к примеру - не могу). Подскажите, пожалуйста, в какую сторону копать. Заранее спасибо. Это сообщение отредактировал(а) _GRIN_ - 11.11.2009, 18:30 -------------------- Дорогу осилит идущий |
|||
|
||||
vinick |
|
|||
Опытный Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
ИМХО копать надо в сторону /etc/inittab и отключать там виртуальные консоли и ctrl-alt-del там же перехватывать.
man inittab |
|||
|
||||
nickless |
|
|||
Гентозавр Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 4 Всего: 181 |
А почему бы просто не поодключать все эти хоткеи в конфиге иксов?
-------------------- Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
DrHex |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 171 Регистрация: 2.5.2009 Репутация: нет Всего: нет |
модуль ядра, и хукать прерывания.....
--------------------
google.com и это все. |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
X читает event'ы из /dev/input/eventX
остается разобраться с форматом вывода и структурой буфера -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Loki |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 244 Регистрация: 9.7.2006 Репутация: нет Всего: нет |
хоткеи можно перехватить через XGrabKey()
а как на счет принтскрина? как отменить? p.s. принтскрим можно сделать и мышкой. |
|||
|
||||
_GRIN_ |
|
|||
одинокий падаван Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
Cпасибо всем за ваше участие. Я извиняюсь, что не однозначно сформулировал задачу. Необходимо иметь возможность включать и отключать перехват - Отключать для работы администратора.
vinick, /etc/inittab - верно. Но к сожалению не получится менять "на лету" - нужна перезагрузка - способ рабочий, но к сожалению не совсем то, что хотелось бы получить. nickless, - тоже отличный способ. Проблема таже что и с /etc/inittab DrHex, "модуль ядра" - вы меня переоцениваете MAKCim, спасибо, вроде бы то что надо - буду копать - если накопаю - опишусь. Loki, к сожалению через XGrabKey не удастся перехватить уже забинденные комбинации. Это сообщение отредактировал(а) _GRIN_ - 21.11.2009, 22:35 -------------------- Дорогу осилит идущий |
|||
|
||||
_GRIN_ |
|
|||
одинокий падаван Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
Копаю по посту MAKCim-а:
судя по всему копать следует сюда: http://bec-systems.com/site/281/how-to-imp...-input-in-linux Но собрать у меня пока не получилось. при компиляции такую кучу ошибок касательно путей к файлам выдаёт, что консоль всё не вмещает (выводил в файл и потом глядел). Ошибки с путями (у меня /usr/include/glib-2.0 - а в хидерах (находящихся в этих папках #include <glib/...> - причём есть файлы которых у меня вообще нет, например glibconfig.h
ну и после этого соответственно куча ошибок компиляции. Копаю дальше (попробую на ноуте под мандривой - на десктопе у меня сусь)... -------------------- Дорогу осилит идущий |
|||
|
||||
ir4y |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Сталкивался с подобной проблемой...
Решил следующим образом 1) в inittab отключил виртуальные консоли 2) в своей программе реализовал формочку для аутентификации... после успешной аутентификации открываеется xterm вот так ЗЫ как ты перехватывешь Alt+F4, Alt+F2, Ctrl+Alt+D ? |
|||
|
||||
_GRIN_ |
|
||||
одинокий падаван Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
ir4y, вот функция:
key - клавиша mod - модификатор (Shift, Alt, Ctrl ...) capture - true: захватить комбинацию ; false: отпустить комбинацию пример использования:
Если комбинация уже захвачена (например оконным мэнеджером, то захватить её не удастся). Осводобить (XUngrabKey) можно только ту комбинацию, которую захватил сам. Больше про XGrabKey можно прочитать тут: http://tronche.com/gui/x/xlib/input/XGrabKey.html Примечание: проверь, есть ли у тебя файл /usr/include/X11/Xlib.h По умолчанию его может не быть, тогда тебе нужно будет установить *xorg-*devel* пакет Вот пакет установленный у меня (Mandriva 64-bit) lib64xorg-x11-devel-7.3-4mdv2009.0 Это сообщение отредактировал(а) _GRIN_ - 24.11.2009, 11:35 -------------------- Дорогу осилит идущий |
||||
|
|||||
green5 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.6.2008 Репутация: нет Всего: нет |
А чем XGrabKeyboard не устраивает?
|
|||
|
||||
_GRIN_ |
|
|||
одинокий падаван Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
green5, XGrabKeyboard железно захватывает клавиатуру - спасибо , за исключением Ctrl+Alt+F<x> и возможно каких-то ещё комбинаций, обрабатываемых до иксов.
Как сделать, что бы моё приложение (работающее в потоке парралельном потоку-перехватчику) получало ввод с клавиатуры - пока не знаю Но метод рабочий что радует. Всё вроде ясно по данной теме за исключением /dev/input/event0 горячего перехвата/отпускания Ctrl+Alt+F<x> и Ctrl+Alt+Del В текущий момент данные вопросы отложу. Всем спасибо, закрываю тему -------------------- Дорогу осилит идущий |
|||
|
||||
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |