void ProcessImpl::killImpl(const ProcessHandleImpl& handle) { if (TerminateProcess(handle.process(), 0) == 0) { CloseHandle(handle.process()); throw SystemException("cannot kill process"); } CloseHandle(handle.process()); }
void ProcessImpl::killImpl(ProcessHandleImpl& handle) { if (handle.process()) { if (TerminateProcess(handle.process(), 0) == 0) { handle.closeHandle(); throw SystemException("cannot kill process"); } handle.closeHandle(); } }
bool ProcessImpl::isRunningImpl(const ProcessHandleImpl& handle) { bool result = true; DWORD exitCode; BOOL rc = GetExitCodeProcess(handle.process(), &exitCode); if (!rc || exitCode != STILL_ACTIVE) result = false; return result; }