在关闭程序c ++之前等待x秒

Rea*_*hLy 1 c++ winapi

只是为了清洁:我是c ++的新手.

嗨,我有一个问题,如何在x秒后关闭程序?

多数民众赞成我到目前为止尝试但是,这个过程不要等待睡眠并自动退出他自己:

    if (LoadProcess("test.exe"))
{
    printf("Please close test.exe.");
    Sleep(20);
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

加载进程代码:

bool manualmap::LoadProcess(const char* procName)
{
    HANDLE hProcessId = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

    PROCESSENTRY32 pEntry;
    pEntry.dwSize = sizeof(pEntry);

    do
    {
        if (!strcmp(pEntry.szExeFile, procName))
        {
            dwProcessId = pEntry.th32ProcessID;
            CloseHandle(hProcessId);

            hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, dwProcessId);
            return (processOk = true);
        }

    } while (Process32Next(hProcessId, &pEntry));

    return (processOk = false);
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*lev 8

该函数sleep不在标准C++中,因此您必须检查它在winapi参考中的作用.

如果你使用标准的c ++,你需要的功能是std::this_thread::sleep_for.

请注意,您可以传递20秒和20000毫秒,后缀告诉编译器您指的是哪个单位.(来自使用命名空间std :: chrono_literals的后缀) - MSalters

  • 请注意,您可以传递'20s`和`20000ms`,后缀告诉编译器您指的是哪个单元.(来自`using namespace std :: chrono_literals`的后缀) (2认同)