КОД:
struct dataset {
HANDLE hProcess;
HANDLE hThread;
};
dataset runProcess(LPCSTR path, string cmdLine, dataset ds) {
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(STARTUPINFO));
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
si.cb = sizeof(STARTUPINFO);
if (CreateProcessA(path, (LPSTR)(" " + cmdLine).c_str(), NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi)) {
ds.hProcess = pi.hProcess;
ds.hThread = pi.hThread;
return ds;
}
else {
return ds;
}
}
int main(){
dataset ds;
ds = runProcess("avoid.exe", NULL, ds);
Sleep(5000);
TerminateProcess(ds.hProcess, NO_ERROR);
TerminateThread(ds.hThread, NO_ERROR);
CloseHandle(ds.hProcess);
CloseHandle(ds.hThread);
return 0;
}
Но вот только все равно остаётся один процесс (создаётся их два) .
Как убить два процесса ?