Скан коды клавиш

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Apokal
Сообщения: 81
Зарегистрирован: 14 янв 2008, 19:02

Помогите найти таблицу скан кодов клавиш клавиатуры, собсна интирисуют скан коды клавиш Arrow Left, Arrow Right, Arrow Down и Arrow Up.
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

Apokal писал(а):Помогите найти таблицу скан кодов клавиш клавиатуры, собсна интирисуют скан коды клавиш Arrow Left, Arrow Right, Arrow Down и Arrow Up.
1) было куча программ, которые показывали сканкоды нажатых клавиш...
2) вот, вытащил из старой досовской - TechHelp
читайте, наслаждайтесь... ScanCode.zip
Вложения
ScanCode.zip
(4.32 КБ) 346 скачиваний
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Serge_Bliznykov, спасибо!
Случайно зашел, оказалось и мне такое пригодится :-)
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

На здоровье.
не то, что уж обязательно было бы нужно, но раньше, во давние времена, когда ещё была жива ДОС
были такие суперполезные вещи:
Flambeaux Software's TECH Help! (файлы с расширением h! (именно восклицательный знак в расширении) там и все функции DOS и прерывания и структуры FAT, и BOOT и многое всякой низкоуровневой вкуснятины! тогда это был однозначный Must Have
и вторая вещь. нет, не так. вот так - ВЕЩЬ!!! -
x86/MS-DOS Interrupt List by Ralf Brown!
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Serge_Bliznykov писал(а):x86/MS-DOS Interrupt List by Ralf Brown!
Он и сейчас есть. Как говорится, теперь - и в интернете:

http://www.ctyme.com/rbrown.htm

Ralf Brown's Interrupt List
Indexed HTML Version - Release 61
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

а вот теперь пришла моя очередь благодарить. буду знать.
спасибо за информацию.
Apokal
Сообщения: 81
Зарегистрирован: 14 янв 2008, 19:02

Cпасибо за табличку, но у меня норм неотображаетса некторые символы в таблице "keyboard Scan Code"( символы с номерами в десятичной системе 72, 75, 76, 80 ). И скан-коды нужных мне клавиш я там ненашол.

Есть ещо один вопросик :
Вот код, смысл его в том чтоб выводить сообщение "This is not ENTER", пока юзер не нажмет на клавишу ENTER. (Судя по той табличка скан-код клавиши ENTER это 28).

Код: Выделить всё

#include <windows.h>

HANDLE hout,hin;
DWORD tmp;
INPUT_RECORD ir;


void writestr(char* str) 
{
WriteConsole(hout, str, lstrlen(str), &tmp, 0);
}

void main()
{
  do
  {
  	ReadConsoleInput(hin, &ir, 1, &tmp);
	writestr("This is not ENTER");
   }
   while(ir.Event.KeyEvent.wVirtualScanCode!=28);
}
Но прога непашет(((Просто зависает и все. Помогите плиз.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Scan коды для DOS и Virtual scan коды для Win32 - суть не одно и то же. В некоторых случаях они совпадают, однако это не a must. Для Win32 правильно использовать набор констант VK_XXX. В случае Enter это будет константа VK_RETURN.

P.S. Не факт, что это поможет тебе. Возможно проблема ещё в чём-то. К сожалению, не могу помочь советом, так как не работал с Win32 консольными функциями вообще.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Apokal
Сообщения: 81
Зарегистрирован: 14 янв 2008, 19:02

Спасибо, шо хоть сказал с чем работать надо.

П.С. А незнаеш де мона достать табличку VK_XXX?
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Покапайся в виндовых хедерах. Все эти константы имеют максимально понятные имена (VK_A,...,VK_Z,VK_F1,...VK_F20, и т.д.). Случай с VK_RETURN - это скорее исключение в именовании, чем правило. Кроме константы для Enter и ещё константы для Alt (VK_MENU), других исключений я, вроде, и не припомню.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить