The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Определение нажатия F1 в консоли через ncurses (scancode curses keyboard)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: scancode, curses, keyboard,  (найти похожие документы)
Date: Thu, 12 Dec 2002 22:00:52 +0500 From: Valentin Nechayev <[email protected]> Newsgroups: ftn.ru.unix.prog Subject: Определение нажатия F1 в консоли через ncurses > Таже проблема жду нажатия F1 , а при нажатии должно вызваться меню > но при нажатии на любую из клавиш Fx прога выходит (у меня выход по > ESC). Тобишь передаеться два байта оно обрабатывает только первый а Hу так убери выход по esc, он тебе мешает понимать ситуацию. > второй нет. Хотя я ставил keypad(stdscr,TRUE); как написанно в man : Попробовал дома. F1-F12 отрабатывает, так же как и всю цифровую клавиатуру без numlock. Из shift+Fn, ctrl+Fn знает только Shift+F2, остальных не знает - разбирает на отдельные коды. F1 показывает как 265. Терминалы - cons25r и screen. Под curses не пишу, все делал строго по ману. FreeBSD 4.7, ncurses 5.1. #include <sys/types.h> #include <signal.h> #include <termios.h> #include <unistd.h> #include <curses.h> #include <err.h> struct termios tio0; void onsig_exit( int s ) { (void) s; endwin(); tcsetattr( 0, TCSADRAIN, &tio0 ); exit(3); } int C[10]; int main() { if( !isatty( 0 ) ) errx( 1, "not at terminal" ); if( tcgetattr( 0, &tio0 ) < 0 ) err( 1, "tcgetattr" ); signal( SIGINT, onsig_exit ); initscr(); cbreak(); noecho(); nonl(); intrflush( stdscr, FALSE ); keypad( stdscr, TRUE ); meta( stdscr, TRUE ); timeout( 4 ); refresh(); for(;;) { int got, ro; clear(); for( ro = 0; ro < 10; ++ro ) { char B[12]; int co; snprintf( B, sizeof B, "%d %d ", ro, C[ro] ); for( co = 0; co < strlen( B ); ++co ) mvaddch( ro, co, B[co] ); } refresh(); got = getch(); if( got == ERR ) { usleep( 100000 ); continue; } for( ro = 0; ro < 9; ++ro ) C[ro] = C[ro+1]; C[9] = got; } }

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру