gpt4 book ai didi

C++ GetAsyncKeyState 在控制台窗口中不工作

转载 作者:行者123 更新时间:2023-11-28 06:23:03 26 4
gpt4 key购买 nike

我正在尝试使用 C++ 进行学习和实验,到目前为止它是这样的:

int main() {
std::vector<std::string> lines = {
"Fancy Centered Text!",
};

if (GetAsyncKeyState(VK_F1) & 1)
{
cout << "LOL";
if (GetAsyncKeyState(VK_SPACE))
{
Sleep(100);
keybd_event(0x50, 0, 0, 0);
Sleep(100);
keybd_event(0x50, 0, KEYEVENTF_KEYUP, 0);
}
}

int num_cols = 75;

// VIRTUAL BORDER
std::cout << std::endl;
for (int i = 0; i < num_cols; ++i) std::cout << ' ';
std::cout << ' ' << std::endl;

// OUTPUT
for (int i = 0; i < lines.size(); ++i) {
centerify_output(lines[i], num_cols);
std::cout << std::endl;
}

// VIRTUAL BORDER
std::cout << std::endl;
for (int i = 0; i < num_cols; ++i) std::cout << ' ';
std::cout << ' ' << std::endl;
}

所以问题是当用户按下 F1 并左键单击时,它将按下一个键一次(在本例中以 Q 为例)。它编译时没有错误或问题,当我尝试按 F1 并左键单击时,什么也没有发生。

也许我太盲目了,看不出哪里出了问题,任何帮助都会很棒!

最佳答案

如果要在执行期间注册多个按键并处理它们,则需要在循环中运行 GetAsyncKeyState 以及所有函数。否则,程序只是在收到按键后才结束执行,你需要一个循环来跳回到按键并再次接收/处理它。

关于C++ GetAsyncKeyState 在控制台窗口中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019521/

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