View difference between Paste ID: 8KWW7Ksn and Y2YTL5jt
SHOW: | | - or go back to the newest paste.
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-
		while( ReadConsoleInputA (hstdin, &InputRecord , 1, &EventsRead) )
19+
20-
		{
20+
		return Key;
21-
			if(InputRecord.EventType == KEY_EVENT
21+
22-
			&& InputRecord.Event.KeyEvent.wVirtualKeyCode == Key
22+
23-
			&& InputRecord.Event.KeyEvent.bKeyDown == false)
23+
24-
				return Key;
24+