Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: события с клавиатуры  (Прочитано 965 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dronte

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
события с клавиатуры
« : 23 Февраля 2014, 14:30:40 »
Подскажите, пожалуйста, где описано или просто расскажите, как консольному приложению через стандартные linux'овые библиотеки (си) получить события нажатия клавиш с клавиатуры? (интересуют клавиши стрелок, insert, home, end, в целях создания удобств командного управления программой)

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #1 : 23 Февраля 2014, 15:14:47 »
Почитайте здесь, надеюсь будет длстаточно примеров ncurses.
Или вы хотите в совсем низкоуровневых кейкодах разбираться ?  :idiot2:
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн dronte

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #2 : 23 Февраля 2014, 18:00:34 »
все-таки ncurces, избегал я его, но похоже придется познавать, спасибо!

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #3 : 23 Февраля 2014, 22:29:59 »
все-таки ncurces, избегал я его, но похоже придется познавать, спасибо!
Вы просто не понимаете сути терминала. Это тяжелое наследие прошлого.
Есть сотни типов терминалов, каждый из них, имел свой протокол обмена.
curces (ncurses) , используя данные termcap/terminfo, умеет работать с громадным количеством терминалов.
Посмотрите /usr/share/terminfo  :idiot2:
Терминалы имеют свои ESC последовательности для различных комманд ввода-вывода, и именно curces,
позволят вам абстрагироваться от конкретного терминала.

Например -
Работая в X windows вы работаете в xterm
Подключаясь удалённо, вы (например) будете работать в vt100 или Linux

Гдетто таак (с эстонским акцентом)  ;)
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн dronte

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #4 : 24 Февраля 2014, 01:04:49 »
Хмм ... почитал я про него, проблема только в том, что как бы его [ncurces] под виндой бы запустить, точнее библиотеки для mingw/TDM-GCC достать?
//вынужден писать под виндой, как бы ее я не ненавидел, спасает только UnxUtils с башем, вимом и прочими плюшками
//PDCurses это тоже самое или отличается внутренностями?
« Последнее редактирование: 24 Февраля 2014, 01:10:25 от dronte »

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #5 : 24 Февраля 2014, 01:36:48 »
Хмм ... почитал я про него, проблема только в том, что как бы его [ncurces] под виндой бы запустить, точнее библиотеки для mingw/TDM-GCC достать?
"мопед не мой" (не побовал, не знаю)
MinGW Port
MinGW Port 32
MinGW Port 64

Под cygwin, вроде совсем без проблем. (Про виндозу, у меня трудности в программировании)
« Последнее редактирование: 24 Февраля 2014, 01:41:30 от golota »
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн dronte

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #6 : 24 Февраля 2014, 02:03:26 »
хмм ... как ни пытался, ни TDM-GCC, ни mingw его так и не увидели ....

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3269
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #7 : 24 Февраля 2014, 13:34:57 »
Я бы попробовал сам реализовать ввод/вывод с терминала, т.е. с помощью termios установил
неканонический режим и сам бы анализировал, что приходит с клавиатуры.
Пётр.

Оффлайн dronte

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #8 : 25 Февраля 2014, 22:33:03 »
хм, да, termios, на данный момент пожалуй это будет самым подходящим, спасибо за наводку!

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Re: события с клавиатуры
« Ответ #9 : 26 Февраля 2014, 01:47:29 »
хм, да, termios, на данный момент пожалуй это будет самым подходящим, спасибо за наводку!
libtinfo, libtermios, libncurses всё это одна малина. Стоит заморачиваться, только в случае программирования для Embedded, когда рессурсы надо экономить.
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.