1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 93
|
||||||
1 | ||||||
Перехват нажатия клавиши на Linux26.04.2012, 16:15. Показов 33719. Ответов 32
Метки нет (Все метки)
Здравствуйте уважаемые эксперты! С помощью WinApi функций было просто использовать функцию GetAsyncKeyState. При нажатии на какую-либо кнопку выполнялось какое-либо действие.
так вот. Каким образом совершить подобное на Linux?
0
|
26.04.2012, 16:15 | |
Ответы с готовыми решениями:
32
Перехват нажатия клавиш XGrabKeyboard Получение нажатия клавиши из неактивного окна Скомпилированная программа закрывается после нажатия клавиши Отлов нажатия клавиатуры в Linux |
08.05.2012, 22:07 | 21 |
shooter9688, ну вот - ты туда можешь по идее прописать цифры 258, 259, 260, 261, либо понятные макросы объявить типа вверх,вниз,вправо,влево (чтобы было понятно что это).
сюда: хотел заметить - у тебя нерациональный код: терминал переключается туда-сюда каждую итерацию. по идее перед циклом включи, а после цикла верни обратно - либо прямо в мейне, либо выведи в функции допустим make_canon_on и make_canon_off ну или как-нибудь еще по вкусу. Добавлено через 2 минуты ошибка. должно быть while(game == true);
1
|
2 / 2 / 0
Регистрация: 27.04.2012
Сообщений: 30
|
|
09.05.2012, 23:09 | 22 |
Спасибо!
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
30.01.2016, 18:15 | 23 |
Вы извините меня, конечно, но решение Перехват нажатия клавиши на Linux
можно назвать таковым с большой натяжкой. Это просто обработка нажатия клавиши определённым образом, а не его перехват. Перехват, это когда у тебя активно окно, допустим, текстового редактора и рядом неактивное окно консоли. Ты жмёшь на клавишу и срабатывает перехватчик- код клавиши появляется в окне консоли. А-ля хук, только в линукске За сим считаю вопрос нерешённым и возобновляю тему, дабы не создавать новой с таким же в точности названием. Вопрос открыт.
1
|
5 / 5 / 2
Регистрация: 05.02.2013
Сообщений: 98
|
|
01.02.2016, 14:26 | 24 |
Тоже думал над этим. Клавиатура ведь устройство. А значит есть ее файл устройства (драйвер). Я его нашел и при его кате происходит интересная вещь: так как это символьное устройство то при любом нажатии на клавиатуру нам будет в консоль выплевываться куски текста (закодированного ну странного текста). Можно сопоставить этим кускам текста нажатые клавиши и все готово. Но проблема в том что нужен рут. Еще интересно по катить драйвер мыши. Там при любом ее движении будут выходить куски текста.
1
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|
05.02.2016, 16:14 | 25 |
В UNIX ещё году в 1970 (лет за 20-25 до появлеия всяких виндаузов) была развита архитектура терминальной подсистемы UNIX. В частности, были определены режимы ввода: канонический + некононический. А вы пытаетесь притянуть виндаунные стереотипы к совершенно другой архитектуре. Вы можете в UNIX/Linux произвольно и тонко управлять всеми деталями ввода: эхо-отображение символов или нет, тайм-аут ожидания и мн. др. Вы можете выполнять это в отдельном потоке или в отдельном окне ... где угодно - только это уже к собственно вводу не имеет никакого касательства. P.S. Кому интересно, можете посмотреть примеры кода Разработка программных проектов в Linux. И кстати ... всё, касающееся терминального ввода UNIX, нужно смотреть в коде C, а в C++ оно просто естественно мигрировало, как в наследника ... поскольку код C++ в Linux не может даже выполняться без наличия библиотеки C API libc.so ... что для некоторых является большим сюрпризом.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
05.02.2016, 16:22 | 26 |
я пытаюсь просто сказать, что вопрос-то не решён. Не пиши больше, тролль. Вопрос открыт.
0
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|
05.02.2016, 16:43 | 27 |
Читай Букварь. Букварь называется: POSIX.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
05.02.2016, 17:14 | 28 |
Вы заметили, друзья, как он переходит на термины, когда нечего сказать? Канноический- неканонический, ещё какую-то херь несёт...
а ведь и надо-то всего как перехватить нажатие клавиши. POSIX, ага... Узнаю почерк! Вопрос открыт
0
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|
05.02.2016, 18:23 | 29 |
Друг мой, канонический, неканонический терминальный ввод - это терминология из документации Linux/POSIX/UNIX ... в раздел форума по программированию для которых вы, по глупости, заползли.
Это всё (и как это использовать) очень внятно растолковано вот в том Букваре, в который я вам советовал заглянуть ... а вы упираетесь, глупышка
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
05.02.2016, 19:44 | 30 |
Термины посмотреть нетрудно. Я что, нажатия клавиш перехватывать этим научусь? Нет. А ты сам не знаешь как это сделать.
0
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|
05.02.2016, 20:26 | 31 |
"Учиться, учиться и ещё раз учиться" (с) В.И.Ленин
Если долго стараться ... долго наживать клавиши и репетировать - обязательно научишься ... ну, если не совсем уж тупой от природы. Я - всё знаю.
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
||||||
05.02.2016, 23:33 | 32 | |||||
Пойдет?
Кликните здесь для просмотра всего текста
-lX11
1
|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 6
|
|
12.07.2017, 08:16 | 33 |
gdb/strace не помогают понять в чём затык. вывод strace: Код
Process 2341 attached restart_syscall(<... resuming interrupted call ...> Добавлено через 20 часов 3 минуты Если быть точным, на сервере запущен Xvnc, в стартовом скрипте которого вызывается браузер, в котором надо блокировать некоторые клавиши (к сожалению, неблокируемые через xmodmap).
0
|
12.07.2017, 08:16 | |
12.07.2017, 08:16 | |
Помогаю со студенческими работами здесь
33
Перехват нажатия клавиши Перехват нажатия клавиши Перехват нажатия клавиши Перехват нажатия клавиши Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |