gpt4 book ai didi

c++ - SetKeyboardState 不能正常工作

转载 作者:行者123 更新时间:2023-11-28 02:57:22 25 4
gpt4 key购买 nike

我有程序,然后它正在运行,它会询问内容,然后用户必须按 1 才能继续我使用 GetKeyState() 函数来确定是否按下了数字,并使用 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;
}
}

最佳答案

我觉得这段代码有点奇怪。我觉得您没有找到解决问题的最佳方法。但我对你的问题了解不够,无法肯定地说。

不过有一件事很突出。您对 GetKeyState() 返回值的测试是错误的,您应该这样测试它:

if(GetKeyState(VK_NUMPAD1)<0)

来自文档:

If the high-order bit is 1, the key is down; otherwise, it is up.

测试高位是否为1的简单方法是值为负。您的代码会测试任何被设置的位,这将对除按键按下之外的状态评估为真。

关于c++ - SetKeyboardState 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21684397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com