Shift PgUp PgDn (как отключить в консоли)

Модератор: Модераторы разделов

Ответить
Ruslan
Сообщения: 21

Shift PgUp PgDn

Сообщение Ruslan »

Может кто знает какой простой способ как в консольной программке отключить действие клавишь Shift PgUp PgDn, т.е. прокрутку терминала.
Спасибо сказали:
Аватара пользователя
JaGoTerr
Сообщения: 380

Re: Shift PgUp PgDn

Сообщение JaGoTerr »

Тебе ответ привести для всех "консольных программок", которые известны форумчанам? Мы-то может и напишем, но тебе читать надоест. Подробнее вопрос сформулируй.

И ещё: заодно, если тебе не сложно, ответь и мне на мой простой вопрос: а нафига??? :blink:
Спасибо сказали:
Ruslan
Сообщения: 21

Re: Shift PgUp PgDn

Сообщение Ruslan »

Да действительно можно двухсмысленно понять :) Извините, блин :huh:

Пишу программку на С и хотелось бы в ней отклочить действие клавишь Shift PgUp PgDn, т.е что-бы при работе моей проги стала невозможна прокрутка терминала. Не знаю какую функцию/код для этого нужно написать. Рою в сторону ioct() &Co но ничего конкретного найти не могу :( Может кто знает.
Спасибо сказали:
Аватара пользователя
JaGoTerr
Сообщения: 380

Re: Shift PgUp PgDn

Сообщение JaGoTerr »

Если логически рассудить, то имхо бесполезно. Тебе это не удастся. Потому как кто первым получает событие о нажатии этих клавиш? Правильно, эмулятор терминала. И кому он в первую очередь это событие передаст, если сам не знает что с этим делать? Правильно, запущенной в нём оболочке. А она уж обработает как надо. И помешать ей ты не в силах. А твоя программа в этом случае даже и не узнает ничего. Смирись :) Вот если ты запустишь прогу не напрямую из оболочки (имеется ввиду что-то типа xterm -e your_program) - тогда флаг в руки. Делай с Shift+PgDn всё, что захочешь.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Shift PgUp PgDn

Сообщение alv »

(JaGoTerr @ Вторник, 22 Марта 2005, 13:55) писал(а):Если логически рассудить, то имхо бесполезно. Тебе это не удастся. Потому как кто первым получает событие о нажатии этих клавиш? Правильно, эмулятор терминала. И кому он в первую очередь это событие передаст, если сам не знает что с этим делать? Правильно, запущенной в нём оболочке. А она уж обработает как надо.


Мне кажется, Вы не совсем правы. Нажатие клавиш обрабатывает консольный драйвер, а не оболочка. И обрабатывает их в соответствие с загруженной раскладкой. И если в некоей раскладке на Shift+PgUp/Down повесить что-то другое, а в программе предусмотреть подмену умолчальной раскладки на такую вот - по спецзаказу, то паркуа бы и не па? Как это сделать во Фришной syscons - я (очень) примерно представляю, но вероятно и в Линукс-консоли можно учудить такое.

Хотя профессиональный программер наверняка может предложить более изящное решение.
Спасибо сказали:
Ответить