5 int main(int argc, char *argv[])
7 static int escCount = 0;
9 HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
13 if (!ReadConsoleInput(hStdin, &ir, 1, &count)) {
14 printf("ReadConsoleInput failed\n");
20 GetConsoleMode(hStdin, &mode);
21 SetConsoleMode(hStdin, mode & ~ENABLE_PROCESSED_INPUT);
24 if (ir.EventType == KEY_EVENT) {
25 const KEY_EVENT_RECORD &ker = ir.Event.KeyEvent;
26 printf("%s", ker.bKeyDown ? "dn" : "up");
28 if (isprint(ker.uChar.AsciiChar))
29 printf("'%c'", ker.uChar.AsciiChar);
30 printf("%d", ker.uChar.AsciiChar);
31 printf(" vk=%#x", ker.wVirtualKeyCode);
32 printf(" scan=%#x", ker.wVirtualScanCode);
33 printf(" state=%#x", (int)ker.dwControlKeyState);
34 printf(" repeat=%d", ker.wRepeatCount);
36 if (ker.uChar.AsciiChar == 27 && ++escCount == 6)