Obługa wciśnięcia kilku klawiszy naraz

0

Witam
Jak przykładowo w konsolowym programie w C/C++ można obsługiwać wciśnięcie kilku klawiszy naraz. Piszę konsolowy programik i użytkownik (gdy okno jest otwarte w podmenu wybiera, żeby schować okno), lecz gdy okno jest schowane, chcę, aby za pomocą kombinacji klawiszy, np. ctrl + alt + delete lub Lctrl + Lshift + A okno się pokazywało z powrotem. W conio.h jest kbhit() i getchar(), ale to chyba działa tylko dla jednego klawisza i gdy okno jest widoczne. W windows.h jest chyba GetAsyncKeyState(), ale nie do końca kojarzę, jak to działa. Funkcja, która chowa i pokazuje okno (par mogłoby być chyba bool):

 void stealth(int par)
{
    HWND stealth;
    AllocConsole();
    stealth=FindWindowA("ConsoleWindowClass",NULL);
    ShowWindow(stealth, par); //par = 0 -> okno sie chowa
}

Pozdrawiam

0
keystate = GetAsyncKeyState
using vk = Virtual Keys from http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
if(keystate(vk(ctrl))+keystate(vk(alt))+keystate(vk(delete)))
    run_process_manager();
0

Czyli jest to pseudokod? A w if(...) zamiast "+" ma być "&&"? Ale jak keystate może mieć kilka różnych wartości naraz? Możesz podać dokładny kod dla, np. lewy ctrl + lewy shift + A?

1
LuIMi napisał(a):

Czyli jest to pseudokod? A w if(...) zamiast "+" ma być "&&"? Ale jak keystate może mieć kilka różnych wartości naraz? Możesz podać dokładny kod dla, np. lewy ctrl + lewy shift + A?

if(GetAsyncKeyState(VK_CONTROL)&&GetAsyncKeyState(VK_SHIFT)&&GetAsyncKeyState(0x41)) ..

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.