Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2015, 16:41   #1
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию Коды клавиш клавиатуры

Добрый день !

Подскажите пожалуйста, есть ли какая-то таблица в которой приведены

Коды клавиш клавиатуры ?
RAFA91 вне форума Ответить с цитированием
Старый 25.12.2015, 17:59   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

У клавиатуры куча кодов.
Например под виндой клавиатура выдает скан код, драйвер переводит его в виртуальную клавиу которая потом переводится в ascii код, в зависимости от раскладки.
Вам который?
waleri вне форума Ответить с цитированием
Старый 25.12.2015, 18:37   #3
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

накалякал такую программу которая проверяет нажатие клавиш

в строке
Код:
cout<<"high =  "<<high<<" low = "<<low<<endl;
полученные значения будут соответствовать коду нажатия клавиш из этой таблицы

https://ru.wikipedia.org/wiki/Скан-код ?

Код:
#include "stdafx.h"
#include <iostream>

#include <conio.h>

using namespace std;
 
void func()
{
    int low = getch();
    int high = 0;
    if (kbhit())  high = getch();
    cout<<"high =  "<<high<<" low = "<<low<<endl;
}

int main() 
{
	
	setlocale(LC_CTYPE, "Russian");
	do
	{
		if (kbhit()) func();
	}
	while (1);
	return 0;
}
RAFA91 вне форума Ответить с цитированием
Старый 25.12.2015, 18:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
будут соответствовать коду нажатия клавиш из этой таблицы
Врядли... По-моему там ASCII код возвращается а не скан.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2015, 16:17   #5
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Врядли... По-моему там ASCII код возвращается а не скан.
тем не менее если перевести полученный результат в hex код то все совпадет
RAFA91 вне форума Ответить с цитированием
Старый 27.12.2015, 18:18   #6
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Посмотри вот эту тему:
http://programmersforum.ru/showthread.php?t=277390
Там программа. Тыкнешь клавишу – выскочит её код.

Ещё один способ: нажми левый <Alt> и, удерживая его, на цифровой клавиатуре набери число от 0 до 255. Получишь символ, соответствующий этому числу. Короче, пошамань немного.

Попробуй запустить такую программу.

Код:
#include <stdio.h>
main ()
{
char a;
for (a = 8; a < 256; a++)
{
printf ("%i - %c\t", a, a);
}
}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось Stilet; 27.12.2015 в 18:34.
jura_k вне форума Ответить с цитированием
Старый 27.12.2015, 18:38   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
	printf("Нажми единицу");
	short int i=getch();
	printf("Скан-код клавиши 1 = 02, а введенный код = %d",i);
	getchar();
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2015, 19:33   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
тем не менее если перевести полученный результат в hex код то все совпадет
Ну, переключите на русскую раскладку, или попробуйте F клавиши.
waleri вне форума Ответить с цитированием
Старый 27.12.2015, 21:45   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
есть ли какая-то таблица в которой приведены
Коды клавиш клавиатуры ?
А вот типа например:

130.png

131.png
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.12.2015, 17:35   #10
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Посмотри вот эту тему:
http://programmersforum.ru/showthread.php?t=277390
Там программа. Тыкнешь клавишу – выскочит её код.

}[/CODE]

для этой цели был использован свой алгоритм

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>

using namespace std;

char str[]="0123456789ABCDEF";

int conv(int x, int i=0, int p=256)
{
	int s=0;
	if (x & 1) s = p;
	if (i<7) s += conv(x>>1,++i, 2*p);
	return s;
}

void hex(int x, int j=0)
{
	int i = x & 15;
	if (j < 3) 
	{
		j++;
		hex(x>>4,j);
	}
	cout<<str[i];
}
 
void func()
{
    int low = getch();
    int high = 0;
    if (kbhit())  high = getch();
    int code = low + conv(high);
	cout<<"low =  "<<low<<" high = "<<high<<endl;
	cout<<"\ncode =  "<<code<<" ";
	hex(code);
	cout<<endl<<endl;
	
	cout<<"********************************\n";
}

int main() 
{
	
	setlocale(LC_CTYPE, "Russian");
	do
	{
		if (kbhit()) func();
	}while (1);
	
	return 0;
}
RAFA91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
коды клавиш *Fantom* Помощь студентам 4 03.06.2013 13:56
Коды клавиш Elloriane Общие вопросы C/C++ 12 20.03.2012 21:32
коды клавиш на ТС alex(21) Общие вопросы C/C++ 1 13.11.2009 10:23
коды клавиш-? Evgenii Общие вопросы Delphi 8 28.10.2009 22:00
Коды клавиш KAMASUTR Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 09.08.2007 22:25