要干净:我是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);
}
答案 0 :(得分:8)
函数sleep
不在标准C ++中,因此您必须检查它在winapi reference中的作用。
如果您使用标准c ++,则需要的功能为std::this_thread::sleep_for
。
请注意,您可以传递20秒和20000毫秒,后缀告诉编译器您指的是哪个单位。 (来自使用命名空间std :: chrono_literals的后缀) - MSalters
答案 1 :(得分:0)
输出后添加换行符:
printf("Please close test.exe.\n");
^^