只是为了干净:C++中的即时消息。

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

那就是我到目前为止尝试过的,但是,该过程不会等待睡眠并自动退出他自己:

    if (LoadProcess("test.exe"))
{
    printf("Please close test.exe.");
    Sleep(20);
    exit(1);
}

加载过程代码:
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);
}

最佳答案

函数sleep不在标准C++中,因此您必须检查winapi reference中的功能。

如果您使用的是标准c++,则所需的功能是 std::this_thread::sleep_for

07-22 03:03