#include <windows.h> // Win32API Header File
#include <stdio.h>
/* ************************************************************************** */
/* */
/* Funkcia IsKeyPressed(int virtualKey) */
/* Je prave stlacena klavesa virtualKey? 0 nie, 1 ano */
/* */
/* ************************************************************************** */
bool IsKeyPressed(int virtualKey)
{
return ((GetAsyncKeyState(virtualKey)&0x8000)!=0?true:false);
}
/* ************************************************************************** */
/* */
/* Hlavny program - ukazka pouzitia, navyse je tam aj mys */
/* */
/* Skuste stlacit postupne Ctrl, Alt alebo Shift, pripadne */
/* pohybte mysou a stlacte lave tlacitko na mysi... */
/* */
/* ************************************************************************** */
int main(int argc, char* argv[])
{
short x = 0;, y = 0; // sem dame suradnice mysi
BOOL lmouse = false; // ci bolo stlacene Lave tlacitko
HANDLE hConsole; // ziskanie handle konzoly
hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // poznate z ulohy 2.7
COORD point = {2,2}; // sem budeme vypisovat text 2:stlpec, 2:riadok
while (true) // nekonecna slucka
{
SetConsoleCursorPosition(hConsole, point); // nastavi sa na [2,2]
printf(" S:%s", IsKeyPressed(VK_SHIFT )?"*":" ");
printf(" C:%s", IsKeyPressed(VK_CONTROL)?"*":" ");
printf(" A:%s", IsKeyPressed(VK_MENU )?"*":" ");
if (IsKeyPressed(VK_ESCAPE)) // Klavesa VK_ESCAPE konci program
{
printf("Escape!! \n");
break;
}
/* ************************************************************************** */
/* */
/* Tato cast kodu zabezpeci nacitanie stavu mysi. Nemusite */
/* mu rozumiet, ani nemusi byt vo vasom programe ak nechcete mys! */
/* */
/* ************************************************************************** */
printf(" X:%d Y:%d \n", x, y);
if (lmouse)
printf("lave tlacitko na mysi");
else
printf(" ");
INPUT_RECORD *str = new INPUT_RECORD[1];
DWORD num = 0;
// nasledujuci prikaz zastavi a caka na udalost!
ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE), str, 1, &num);
// vysledkom udalosti je:
x = str->Event.MouseEvent.dwMousePosition.X;
y = str->Event.MouseEvent.dwMousePosition.Y;
lmouse = str->Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED;
Sleep(1);
/* ************************************************************************** */
} // toto je koniec nekonecnej slucky
return 0; // a toto koniec programu
}