CybioZ Опубликовано 16 июня, 2015 Поделиться Опубликовано 16 июня, 2015 Здравствуйте! Меня интересует ,как можно реализовать хоткей в c++ в консольном приложении , по нажатию клавиши чит включался/выключался, как то так.. Ссылка на комментарий Поделиться на другие сайты Поделиться
KaLaSh Опубликовано 16 июня, 2015 Поделиться Опубликовано 16 июня, 2015 Может GetAsyncKeyState() ? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 17 июня, 2015 Поделиться Опубликовано 17 июня, 2015 наверно так (включая блокировку вкл/откл когда клавиша зажата)char KeySwitch01;char KeyStatus01;char Key;Key = (GetAsyncKeyState(VK_F1) >> 8);if (KeySwitch01 != Key){KeySwitch01 = (Key);if (Key){if (!KeyStatus01){KeyStatus01 = 1;} else {KeyStatus01 = 0;}}} Ссылка на комментарий Поделиться на другие сайты Поделиться
Крайслер Опубликовано 28 июня, 2015 Поделиться Опубликовано 28 июня, 2015 (изменено) наверно так (включая блокировку вкл/откл когда клавиша зажата)я бы сделал так:Для простого переключания флагов: используем так:VK_END -скан клавиши3000 - раз в 3000мсек(3 сек) возможно срабатывание условия (иногда полезно) для простого зажатия клавиши такие макросы:static struct _Keys{ bool bPressed; DWORD dwStartTime; }kPressingKeys[256];BOOL State_Key(int Key, DWORD dwTimeOut){if (HIWORD(GetKeyState(Key))){if (!kPressingKeys[Key].bPressed || (kPressingKeys[Key].dwStartTime && (kPressingKeys[Key].dwStartTime + dwTimeOut) <= GetTickCount())){kPressingKeys[Key].bPressed = TRUE;if (dwTimeOut > NULL)kPressingKeys[Key].dwStartTime = GetTickCount();return TRUE;}}elsekPressingKeys[Key].bPressed = FALSE;return FALSE;}bool Show = false;if (State_Key(VK_END,3000))Show = !Show;#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)if(KEY_DOWN(VK_F1))cPlayerEntity->vPos.x = vPos.x += *(int*)value; Изменено 28 июня, 2015 пользователем Крайслер 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения