gpt4 book ai didi

c++ - 检测何时释放键

转载 作者:行者123 更新时间:2023-11-28 00:24:03 25 4
gpt4 key购买 nike

我想检查一个键何时被释放,但如果没有无限循环我就无法这样做,这会使其余代码暂停。在没有无限循环的情况下,如何在运行我的程序的其余部分时检测是否释放了一个键?这是我找到并一直在使用的代码:

#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
int counter=0;
ofstream myfile;
short prev_escape = 0, curr_escape = 0;
myfile.open("c:\\example.txt");
while(true)
{
if(GetAsyncKeyState(VK_ESCAPE))
curr_escape = 1;
else
curr_escape = 0;
if(prev_escape != curr_escape)
{
counter++;
if(curr_escape)
{
myfile <<"Escape pressed : " << counter << endl;
cout<<"Escape pressed !" << endl;
}
else
{
myfile <<"Escape released : " << counter << endl;
cout<<"Escape released !" << endl;
}
prev_escape = curr_escape;
}
}
myfile.close();
return 0;
}

最佳答案

if (GetAsyncKeyState(VK_SHIFT) < 0 && shift == false)
{
shift = true;
}
if (GetAsyncKeyState(VK_SHIFT) == 0 && shift == true)
{
shift = false;
}

这是我在我的 CLI 游戏中使用的更精致的版本,我刚才从 David 的回答中采用了它(谢谢 David,我正在绞尽脑汁试图自己解决这个问题)。 top在按下shift时执行,bottom在shift松开时执行。

编辑:必须事先将 bool“shift”初始化为 false 才能工作。

关于c++ - 检测何时释放键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25974153/

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