I dug up this. Try a bunch of different keys. It prints a message for quite a lot of them. I didn't test it with Dev C++, cuz it appears I wrote it with MS Visual C++ 6.0. If it doesn't work I'll see what's wrong with it. I believe you end the program by either hitting [ESCAPE] or x'ing out.
#include <windows.h>
#include <stdio.h>
void cls( HANDLE hConsole )
{
COORD coordScreen = {0,0};
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole,(TCHAR)' ',
dwConSize,coordScreen,&cCharsWritten);
GetConsoleScreenBufferInfo( hConsole, &csbi);
FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten );
SetConsoleCursorPosition( hConsole, coordScreen );
return;
}
int main(void)
{
COORD xy,hv;
BOOL bContinue=TRUE;
DWORD dwInputEvents;
HANDLE hStdOutput,hStdIn;
INPUT_RECORD ir;
hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
hStdIn = GetStdHandle(STD_INPUT_HANDLE);
cls(hStdOutput);
xy.X=0;xy.Y=0;
hv.X=0;hv.Y=1;
SetConsoleCursorPosition(hStdOutput,xy);
do
{
ReadConsoleInput(hStdIn,&ir,1,&dwInputEvents);
if(ir.EventType == KEY_EVENT)
{
if(ir.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE)
{
printf("%u\t%u\n",VK_ESCAPE,ir.Event.KeyEvent.uChar.AsciiChar);
break;
}
else
{
if(ir.Event.KeyEvent.bKeyDown==TRUE)
{
if(ir.Event.KeyEvent.dwControlKeyState & RIGHT_CTRL_PRESSED)
printf("Right Control Key Pressed!\n");
else
{
switch(ir.Event.KeyEvent.wVirtualKeyCode)
{
case VK_DELETE:
printf("%u\tYou Hit Delete!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_INSERT:
printf("%u\tYou Hit Insert!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_LEFT:
printf("%u\tYou Hit The Left Cursor Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_RIGHT:
printf("%u\tYou Hit The Right Cursor Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_UP:
printf("%u\tYou Hit The Up Cursor Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_DOWN:
printf("%u\tYou Hit The Down Cursor Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_NEXT:
printf("%u\tYou Hit The Page Down Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_PRIOR:
printf("%u\tYou Hit The Page Up Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_HOME:
printf("%u\tYou Hit The Home Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_END:
printf("%u\tYou Hit The End Key!\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F1:
printf("%u\tYou Hit F1\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F2:
printf("%u\tYou Hit F2\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F3:
printf("%u\tYou Hit F3\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F4:
printf("%u\tYou Hit F4\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F5:
printf("%u\tYou Hit F5\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F6:
printf("%u\tYou Hit F6\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F7:
printf("%u\tYou Hit F7\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F8:
printf("%u\tYou Hit F8\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F9:
printf("%u\tYou Hit F9\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F10:
printf("%u\tYou Hit F10\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F11:
printf("%u\tYou Hit F11\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
case VK_F12:
printf("%u\tYou Hit F12\n",ir.Event.KeyEvent.wVirtualKeyCode);
break;
default:
printf("%u\t%c\t%u\n",ir.Event.KeyEvent.uChar.AsciiChar,ir.Event.KeyEvent.uChar.AsciiChar,ir.Event.KeyEvent.wVirtualKeyCode);
}
}
}
}
}
}while(TRUE);
return 0;
}