У меня есть программа, затем она запускается, она запрашивает информацию, а затем пользователю нужно нажать 1, чтобы продолжить. Я использую функцию GetKeyState(), чтобы решить, был ли номер нажат, и SetKeyboardState(), чтобы установить ключи, но после второй попытки он не работает. Что не так?SetKeyboardState не работает должным образом
Код:
BYTE States[256];
GetKeyboardState(States);
cout << press 1 << endl;
while(!Started)
{
if(GetKeyState(VK_NUMPAD1))
{
Started = true;
}
}
SetKeyboardState(States);
cout << "press 1" << endl;
while(!Name)
{
if(GetKeyState(VK_NUMPAD1))
{
Name = true;
}
}
SetKeyboardState(States);
cout << "press 1" << endl;
while(!Located)
{
if(GetKeyState(VK_NUMPAD1))
{
Located = true;
}
}
'if (GetKeyState (VK_NUMPAD1) <0)' правильный тест, но я не знаю, чего вы на самом деле надеетесь достичь. Почему бы вам просто не назвать «GetAsyncKeyState»? –
Я попытался с GetAsyncKeyState, но после первого нажатия он остается верным, и я не знаю, как установить ключ в не нажатый – Magician
Вы понимаете разницу между 'GetKeyState' и' GetAsyncKeyState'? Вы должны сделать следующее: Используйте 'GetAsyncKeyState', чтобы обнаружить, что ключ не работает, и принять меры. Затем дождитесь, пока 'GetAsyncKeyState' говорит, что ключ снова встает, прежде чем переходить к циклу для следующего ключа. Попытка справиться с нажатиями клавиш, подобными этому, в консольном приложении довольно беспорядочно. Почему вы выбрали консольное приложение, а не графическое приложение? –