Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте! Меня интересует ,как можно реализовать хоткей в c++ в консольном приложении , по нажатию клавиши чит включался/выключался, как то так..

Ссылка на комментарий
Поделиться на другие сайты

наверно так (включая блокировку вкл/откл когда клавиша зажата)

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;}}}
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

наверно так (включая блокировку вкл/откл когда клавиша зажата)

я бы сделал так:

Для простого переключания флагов:

 

используем так:

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;
Изменено пользователем Крайслер
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.