Advertisement
Iwanicki

my getch() v. 2

Oct 24th, 2012
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WORD getch()
  2. {
  3.   HANDLE hstdin = GetStdHandle (STD_INPUT_HANDLE);
  4.   INPUT_RECORD InputRecord;
  5.   DWORD EventsRead;
  6.   WORD Key;
  7.  
  8.   while(ReadConsoleInputA (hstdin, &InputRecord, 1, &EventsRead) ) /* czeka na input event */
  9.   {
  10.     if(InputRecord.EventType == KEY_EVENT
  11.     && InputRecord.Event.KeyEvent.wVirtualKeyCode != VK_SHIFT
  12.     && InputRecord.Event.KeyEvent.wVirtualKeyCode != VK_MENU    /* ALT_KEY */
  13.     && InputRecord.Event.KeyEvent.wVirtualKeyCode != VK_CONTROL
  14.     && InputRecord.Event.KeyEvent.wVirtualKeyCode != VK_CAPITAL /* CAPS LOCK */
  15.     )
  16.     {
  17.         Key = InputRecord.Event.KeyEvent.wVirtualKeyCode;
  18.         ReadConsoleInputA(hstdin, &InputRecord, 1, &EventsRead)  //Bez tego by wypisywało tak szybko, że jedno naciśnięcie klawisza, wypisywało by 2 razy to samo :)
  19.        
  20.         return Key;
  21.     }
  22.   }
  23.   return EOF;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement