示例#1
0
void ProcessImpl::killImpl(const ProcessHandleImpl& handle)
{
	if (TerminateProcess(handle.process(), 0) == 0)
	{
		CloseHandle(handle.process());
		throw SystemException("cannot kill process");
	}
	CloseHandle(handle.process());
}
示例#2
0
void ProcessImpl::killImpl(ProcessHandleImpl& handle)
{
	if (handle.process())
	{
		if (TerminateProcess(handle.process(), 0) == 0)
		{
			handle.closeHandle();
			throw SystemException("cannot kill process");
		}
		handle.closeHandle();
	}
}
示例#3
0
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;
}
示例#4
0
void ProcessImpl::killImpl(const ProcessHandleImpl& handle)
{
	killImpl(handle.id());
}
示例#5
0
bool ProcessImpl::isRunningImpl(const ProcessHandleImpl& handle)
{
	return isRunningImpl(handle.id());
}