Возможно вы искали: 'Home Alone 2: Lost in ...'

May 15 2025 18:30:02
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Как программировать клавиатуру? (keyboard terminal scancode curses )

Как программировать клавиатуру? (keyboard terminal scancode curses )

Ключевые слова: keyboard, terminal, scancode, curses, (найти похожие документы)

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Dmitry Kravtsov 2:5020/1101.74 06 Sep 97 11:58:56
Subj : Re: Как программировать клавиатуру?
________________________________________________________________________________
Hello All!

04 Sep 97 12:44, Alexander E. Tcherenkov (2:50/128@fidonet) wrote to All:

AET> Dmitry Kishchukov wrote:
>> Кто подскажет как мне на C/C++ попроще сделать две простые вещи:
>> 1. Узнать есть ли нажатые клавиши?
>> 2. Взять код нажатой клавиши (сразу а не после нажатия "Enter")
AET> см. man curs_getch функции getch,wgetch ,...
AET> но надо будет использовать curses.
AET> Если создашь класс в дальнейшем это будет
AET> действительно просто...
Если нет особой необходимости связываться с ncurses, то можно этого не делать, а
почитать man termios ()

=== Cut ===
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/ioctl.h>
...
struct termio tstdin;
fd_set mask;
...
/* Set stdin (file descriptor=0) to raw mode, no echo */
ioctl(0, TCGETA, &tstdin);
tstdin.c_lflag &= ~(ICANON|ECHO);
ioctl(0, TCSETA, &tstdin);
=== Cut ===

WMBR :), Dmitry AKA kravtsov@falt.deep.ru

---
* Origin: MIPTh, DAFT (2:5020/1101.74)

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Victor Vislobokov 2:5054/8.34 19 May 97 23:43:38
Subj : GNUc
________________________________________________________________________________
Hello NMi.

Держи маленьки примерчик, который ждет нажатия клавиши и
затем выдает код клавиши (не для клавиш вырабатывающих несколько
кодов). Выход по нажатию Enter.


=== probe.c ===
#include<stdio.h>
#include<curses.h>

main()
{
int c;

initscr();
cbreak();
noecho();

do
{
c=getch();
printw("%d",c);
refresh();
}
while(c!=10);

endwin();
return 0;
}
=== Cut ===

А вот как это компилить:

=== Makefile ===
probe: probe.o
g++ -m486 -o probe probe.o -lncurses

probe.o: probe.c
g++ -c probe.c
=== Cut ===

Victor

--- xMail/beta
* Origin: (2:5054/8.34)

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Leonid Broukhis 2:5020/400 16 May 97 08:11:10
Subj : Как пpочитать с клавиатypы символ ?
________________________________________________________________________________
From: leob@asylum.mailcom.com (Leonid Broukhis)

On Fri, 16 May 97 00:21:40 +0400, NMi iNtERCEPtOR wrote:

>Еще вопpос - faq, навеpное... всю жизнь под дос/bcpp кодил.
>Как пpочитать с клавиатypы символ ? В смысле - "c=???();", нажимаем бyквy 'a' и
>полyчаем c=69, и т.п. (стpелки, ...)
>
>Уже все пеpепpобовал - getch, getc, getchar, read(fileno(stdin),c,1),... =((
>
>Еще пpоблема - когда делаю #include <curses.h> - не видит "stdscr","wgetch()".
>Hасколько я понимаю, нyжно пpилинковать /lib/libncurses.so ? Как ?

Если тебе нужен только небуферизованный ввод с клавиатуры, а рисование
на экране не нужно, то system("stty -icanon min 1"); тебя устроит.
(В конце программы нужно поставить system("stty icanon");)

После этого делаешь stdin небуферизованным setbuf(stdin, NULL); и читаешь
getchar'ом.

Leo


--- ifmail v.2.9
* Origin: Demos online service (2:5020/400@fidonet)

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Oleg Machulski 2:5020/623.20 16 May 97 17:13:28
Subj : Re: GNUc ; Console/terminal keyboard access
________________________________________________________________________________
Hello NMi!

16 Май 97, NMi iNtERCEPtOR писа[л|ла] к All:

Ni> Еще вопpос - faq, навеpное...

по-моему еще не faq, хотя я похожий вопpос как-то задавал.

Ni> всю жизнь под дос/bcpp кодил.

bcpp - мастдай, watcom - pулез

Ni> Как пpочитать с клавиатypы символ ? В смысле - "c=???();", нажимаем
Ni> бyквy

может пpимеp и избыточен, но пpимеpно в таком виде это
пpисутствует в joe. (пpактически было оттуда выдpано)

а если скан-кодов хочешь, то в RAW клавиатуpу надо пеpеводить.
СУПЕРВОПРОС: какой комбинацией кнопок клавиатуpу из RAW
выводят???


=== Cut ===
#include <stdio.h>
#include <fcntl.h>
#include <sys/termios.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>

void main(){
int termin;
int havec;
struct termios oldterm;
struct termios newterm;

termin=open("/dev/tty",O_RDONLY);

tcgetattr(termin,&oldterm);
tcgetattr(termin,&newterm);

newterm.c_lflag=0;
newterm.c_iflag&=~(ICRNL|IGNCR|INLCR|IXON|IXOFF);
newterm.c_oflag=0;
newterm.c_cc[VMIN]=1;
newterm.c_cc[VTIME]=0;
tcsetattr(termin,TCSADRAIN,&newterm);

fcntl(termin, F_SETFL, O_NDELAY);

while(havec!=0x20){
if(read(termin,&havec,1)==1) {
printf("[%x]", havec);
fflush(stdout);
}
}

tcsetattr(termin,TCSADRAIN,&oldterm);
fcntl(termin, F_SETFL, 0);
}
=== Cut ===

Ni> 'a' и полyчаем c=69, и т.п. (стpелки, ...)

где это у тебя 'a'=69??? 'a'=То ли 0x61 то ли 0x41

Ni> Уже все пеpепpобовал - getch, getc, getchar,
Ni> read(fileno(stdin),c,1),...
Ni> =((

естественно все эти падлы ждут нажатия enter, да???
неудивительно. консоль же у тебя и печатной машинкой consul
может быть :)

кстати очевидно, что вся еpунда типа стpелок, пэйджапов
и эфодинов пpиходит как ескейппоследовательности.


With best regards,
Oleg.
--- user_defined_warning UNREG
* Origin: powered by Linux (FidoNet 2:5020/623.20)

_ RU.UNIX.BSD (2:5077/15.22) _____________________________________ RU.UNIX.BSD _
From : Ivan Pascal 2:5020/400 11 Sep 98 12:35:14
Subj : Re: траблы + Re: сканкоды
________________________________________________________________________________
From: Ivan Pascal <pascal@tsu.ru>

Valentin Davydov wrote:
>
> > From: Ivan Pascal <pascal@tsu.ru>
> > Date: 9 Sep 1998 13:48:02 +0400
> >
> >#include <machine/console.h>
> >#include <ncurses.h>
> >
> >main()
> >{ char c;
> >
> > initscr(); savetty(); raw(); noecho();
> > if (ioctl(0, KDSKBMODE, K_CODE) < 0) perror(0);
> >
> > do {
> > c = getchar();
> > if (c > 0) printf("%dnr", c);
> > } while (c != 1);
> >
> > if (ioctl(0, KDSKBMODE, K_XLATE) < 0) perror(0);
> > resetty();
> >
> > exit();
> >}
>
> Большое спасибо! Только не K_CODE, а K_RAW, наверное.

Это зависит от того, что вы хотите :-)
C K_RAW она вам будет отдавать "сырые" скан-коды.
То есть, "код нажатия"/"код отжатия" и к тому же, некоторые
клавиши генерят целую последовательность кодов.

А то, что указывется в keymap в первой колонке, это уже
не "сырые" коды, а внутренние коды syscons. Они отличаются
тем, что для простых клавиш берется только "код нажатия",
а "расширенные" коды он просто заменяет на однобайтные
(те, которые еще не заняты простыми клавишами).

Так вот, K_KODE - это отдавать эти внутренние коды.
То есть, если вам нужны коды кнопок, чтобы потом "навесить"
на них что-нибудь полезное через keymap, то лучше K_KODE.


> Вал. Дав.

P.S. кстати, для "сырых" кодов программку надо подправить -
убрать проверку (c > 0), или сделать c - unsigned char

--
-----
Ivan Pascal | pascal@tsu.ru
Administrator of | Tomsk State University.
university network | Tomsk. Russia.
--- ifmail v.2.14dev2
* Origin: Tomsk State University (2:5020/400@fidonet)

1102 Прочтений •  [Как программировать клавиатуру? (keyboard terminal scancode curses )] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Как программировать клавиатуру? (ke... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка