结束进程树
来源:互联网 发布:php数组中删除指定元素 编辑:程序博客网 时间:2024/05/22 09:47
void KillProcessTree(DWORD dwProcessID)
{
PROCESSENTRY32 info;
info.dwSize = sizeof(PROCESSENTRY32 );
//结束进程句柄
HANDLE hProcess = NULL;
DWORD dwParentPID = 0;
DWORD dwChildPID = 0;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, dwProcessID);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
return ;
}
// 遍历进程快照,轮流显示每个进程的信息
BOOL bMore = Process32First(hProcessSnap, &info);
while( bMore != FALSE)
{
// 如果找个父进程句柄是需要关闭的ID,就已经完成查找
if (dwProcessID == info.th32ParentProcessID)
{
dwParentPID = info.th32ParentProcessID;
dwChildPID = info.th32ProcessID;
break;
}
// 如果找到dwProcessID进程,就只保存父线程ID
if (dwProcessID == info.th32ProcessID)
{
dwParentPID = info.th32ProcessID;
}
bMore = Process32Next(hProcessSnap, &info);
}
if (dwChildPID)
{
// 如果有子线程先结束子线程
hProcess=OpenProcess(PROCESS_TERMINATE, FALSE, dwChildPID);
if (NULL == hProcess)
{
return ;
}
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
if (dwParentPID)
{
hProcess=OpenProcess(PROCESS_TERMINATE, FALSE, dwParentPID);
if (NULL == hProcess)
{
return ;
}
TerminateProcess(hProcess, 0);
CloseHandle(hProcessSnap);
}
}
{
PROCESSENTRY32 info;
info.dwSize = sizeof(PROCESSENTRY32 );
//结束进程句柄
HANDLE hProcess = NULL;
DWORD dwParentPID = 0;
DWORD dwChildPID = 0;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, dwProcessID);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
return ;
}
// 遍历进程快照,轮流显示每个进程的信息
BOOL bMore = Process32First(hProcessSnap, &info);
while( bMore != FALSE)
{
// 如果找个父进程句柄是需要关闭的ID,就已经完成查找
if (dwProcessID == info.th32ParentProcessID)
{
dwParentPID = info.th32ParentProcessID;
dwChildPID = info.th32ProcessID;
break;
}
// 如果找到dwProcessID进程,就只保存父线程ID
if (dwProcessID == info.th32ProcessID)
{
dwParentPID = info.th32ProcessID;
}
bMore = Process32Next(hProcessSnap, &info);
}
if (dwChildPID)
{
// 如果有子线程先结束子线程
hProcess=OpenProcess(PROCESS_TERMINATE, FALSE, dwChildPID);
if (NULL == hProcess)
{
return ;
}
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
if (dwParentPID)
{
hProcess=OpenProcess(PROCESS_TERMINATE, FALSE, dwParentPID);
if (NULL == hProcess)
{
return ;
}
TerminateProcess(hProcess, 0);
CloseHandle(hProcessSnap);
}
}
- 结束进程树
- C#结束进程树
- 如何等待进程树结束
- 如何等待进程树结束
- c++命令结束进程树
- c# 结束进程树实现
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- 结束进程
- CSS学习中十条速记口诀
- 林志炫-离人
- nginx 查看 并发连接数
- 串口通信与并口通信的浅理解
- PHP 编程规范! 尤其注意的几个问题
- 结束进程树
- 双指针的作用和用法
- 即点即译
- Vuforia Architecture(高通组件)
- C语言根据日期判断星期几(使用基姆拉尔森计算公式)
- 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍
- GC工作机制
- 修改tomcat项目的图标
- netstat 命令