Страница 1 из 2

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

Добавлено: 18 мар 2008, 00:18
Apokal
Помогите найти таблицу скан кодов клавиш клавиатуры, собсна интирисуют скан коды клавиш Arrow Left, Arrow Right, Arrow Down и Arrow Up.

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

Добавлено: 18 мар 2008, 09:03
Serge_Bliznykov
Apokal писал(а):Помогите найти таблицу скан кодов клавиш клавиатуры, собсна интирисуют скан коды клавиш Arrow Left, Arrow Right, Arrow Down и Arrow Up.
1) было куча программ, которые показывали сканкоды нажатых клавиш...
2) вот, вытащил из старой досовской - TechHelp
читайте, наслаждайтесь... ScanCode.zip

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

Добавлено: 18 мар 2008, 09:41
VictorM
Serge_Bliznykov, спасибо!
Случайно зашел, оказалось и мне такое пригодится :-)

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

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

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

Добавлено: 18 мар 2008, 12:45
BBB
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

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

Добавлено: 18 мар 2008, 13:05
Serge_Bliznykov
а вот теперь пришла моя очередь благодарить. буду знать.
спасибо за информацию.

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

Добавлено: 18 мар 2008, 17:50
Apokal
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);
}
Но прога непашет(((Просто зависает и все. Помогите плиз.

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

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

P.S. Не факт, что это поможет тебе. Возможно проблема ещё в чём-то. К сожалению, не могу помочь советом, так как не работал с Win32 консольными функциями вообще.

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

Добавлено: 18 мар 2008, 19:59
Apokal
Спасибо, шо хоть сказал с чем работать надо.

П.С. А незнаеш де мона достать табличку VK_XXX?

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

Добавлено: 18 мар 2008, 20:35
Romeo
Покапайся в виндовых хедерах. Все эти константы имеют максимально понятные имена (VK_A,...,VK_Z,VK_F1,...VK_F20, и т.д.). Случай с VK_RETURN - это скорее исключение в именовании, чем правило. Кроме константы для Enter и ещё константы для Alt (VK_MENU), других исключений я, вроде, и не припомню.