Obsługa Alt, Ctrl, Shift.

0

Cześć
Pisze sobie ostatnio programik i nagle zonk. NIe mam pojęcia jak obsługiwać klawisze Alt, Ctrl, Shift ,a dokładnie jak sprawdzić ,że są wcisniete. Kombinowałem z getch() ,ale w sumie to do niczego nie doszedłem. Jesli kotś wie jak obsłużyć te klawisze w C lub C++ to byłbym wdzięczny. (I jeszcze jedno jak zrobić wskaźnik z adresu??).

0

Jaki system?
Jesli Windows to masz kawalek kodu i pokombinuj.

#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
  HANDLE uchwyt_wej = GetStdHandle(STD_INPUT_HANDLE);
  INPUT_RECORD bufor = {0};
  DWORD ile = 0;

  while (true)
   if ( ReadConsoleInput(uchwyt_wej, &bufor, 1, &ile) && ile == 1 &&
        bufor.EventType == KEY_EVENT)
    cout << (bufor.Event.KeyEvent.bKeyDown ? "Nacisniety " : "Zwolniony ")
         << "klawisz o kodzie " << bufor.Event.KeyEvent.wVirtualKeyCode << endl;
  return 0;
}
0

Prościej poszukać w tablicy ASCII kodu do SHIFT, ESC itd.
a pozniej odpowiedni warunek warunek.

0

ESC ma jakiś znak w ascii, ale shift jest znakiem specjalnym i w ascii go nie ma. on ma kod dwu bajtowy 0 i coś, jak dasz getchem to najpierw zwoci 0 ale zostawi drugi bajt w buforze klawiatury, wiec musisz jeszcze raz getcha dać

0

ja uzylem funkcji systemowej KeyState (czy jakos tak)

1 użytkowników online, w tym zalogowanych: 0, gości: 1