Advertisement
Iwanicki

my getch()

Oct 24th, 2012
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  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.        
  19.         while( ReadConsoleInputA (hstdin, &InputRecord , 1, &EventsRead) )
  20.         {
  21.             if(InputRecord.EventType == KEY_EVENT
  22.             && InputRecord.Event.KeyEvent.wVirtualKeyCode == Key
  23.             && InputRecord.Event.KeyEvent.bKeyDown == false)
  24.                 return Key;
  25.         }
  26.     }
  27.   }
  28.   return EOF;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement