进程(WINAPI),遍历并查找树状的进程信息,实现控制系统进程

#include <TlHelp32.h>
//检索系统全部进程
void showall()
{
	PROCESSENTRY32 pe32 = {0};
	pe32.dwSize = sizeof(pe32);
	//查找进程
	HANDLE hpprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//CreateToolhelp32Snapshot创建快照
	BOOL bmore = Process32First(hpprocess,&pe32);//查找
	while (bmore)
	{
		printf("%-25s  %d\n",pe32.szExeFile,pe32.th32ParentProcessID);
		bmore=Process32Next(hpprocess, &pe32);
	}
}
//通过进程名来关闭
void close(char *name)
{
	PROCESSENTRY32 pe32 = { 0 };//进程快照
	pe32.dwSize = sizeof(pe32);//设置机构体大小
	HANDLE hpprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	BOOL bmore = Process32First(hpprocess, &pe32);
	while (bmore)
	{
		printf("%s    %d\n", pe32.szExeFile, pe32.th32ParentProcessID);
		if (!strcmp("FsCapture.exe", pe32.szExeFile) )
		{
			puts("\n\nfind,存在该进程!");
			HANDLE hpro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);//打开进程
			TerminateProcess(hpro, 0);//结束线程    注意此处
		}
		bmore = Process32Next(hpprocess, &pe32);
	}
	printf("\n不存在此进程!\n");
}
//通过进程编号来关闭
void closebyid(unsigned long id)
{
	PROCESSENTRY32 pe32 = { 0 };//进程快照
	pe32.dwSize = sizeof(pe32);//设置机构体大小
	HANDLE hpprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	BOOL bmore = Process32First(hpprocess, &pe32);//寻找
	//找全部的进程
	while (bmore)
	{
		if (id==pe32.th32ProcessID)
		{
			puts("find");
			HANDLE hpro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ParentProcessID);//打开进程
			TerminateProcess(hpro, 0);
		}
		bmore = Process32Next(hpprocess, &pe32);
	}
}
void main()
{
	printf("进程名\t\t\t进程编号\n");
	showall();
	close("FsCapture.exe");//通过进程名来结束进程
	closebyid(4356);//通进程编号来结束进程
	getchar();
}

时间: 2024-12-13 02:14:59

进程(WINAPI),遍历并查找树状的进程信息,实现控制系统进程的相关文章

51nod_1199 树的先跟遍历+区间更新树状数组

题目是中文,所以不讲题意 做法顺序如下: 使用先跟遍历,把整棵树平铺到一维平面中 使用自己整的区间更新树状数组模板进行相关操作. http://www.cnblogs.com/rikka/p/7359185.html 放代码如下: 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 6 /* 7 *常量MAXN用于设定树状数组的尺寸大小 8 */ 9 const long long MAXN=500233; 10 class TreeL

poj3468区间加减查找——树状数组区间修改查询

题目:http://poj.org/problem?id=3468 增加一个更改量数组,施以差值用法则区间修改变为单位置修改: 利用公式可通过树状数组维护两个数组:f与g而直接求出区间和. 代码如下: #include<iostream> #include<cstdio> using namespace std; long long n,q,a[100005]/*,b[100005],bg[100005]*/,l,r,ad; long long f[100005],g[100005

SPOJ TEMPLEQ - Temple Queues(二分查找+树状数组)

题意: 有N个队伍(1 <= N <= 100,000),每个队伍开始有ai个人[0 <= ai<= 100,000,000],有Q个操作[0<=Q<= 500,000] 操作分为三种,1 A:表示在第A个队列加一个人. 2 X:表示求长度大于等于X队列数量.3 Y:表示所有长度大于等于Y的队列减去一个人. 题解: 把各个队列按长度排序 用差分数列来维护这个数组,这样求每个队列的长度就是求前缀和.每次求长度的复杂度是lgn,因为队列是按长度排序的,所以可以通过二分查找到

浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树

http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的时候具有较高的灵活性,而有序数组在查找时具有较高的效率,本文介绍的二叉查找树(Binary Search Tree,BST)这一数据结构综合了以上两种数据结构的优点. 二叉查找树具有很高的灵活性,对其优化可以生成平衡二叉树,红黑树等高效的查找和插入数据结构,后文会一一介绍. 一 定义 二叉查找树(B

Day03处理上级部门(树状结构)和用户管理

系统管理:部门管理-处理上级部门 添加或者修改时,上级部门的格式如图:.解决此功能将面临两个问题:1.将所有部门名称以下拉选的形式展示出来2.以树状结构展示.在此我们先解决问题1. 在添加页面中展示所有部门名称,并完成添加功能 DepartmentAction: public String addUI() throws Exception { //准备数据 List<Department> departmentList = departmentService.findAll(); Action

[转]浅谈算法和数据结构: 八 平衡查找树之2-3树

前面介绍了二叉查找树(Binary Search Tree),他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低.本文及后面文章介绍的平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率,要实现这一目标我们需要保证树在插入完成之后始终保持平衡状态,这就是平衡查找树(Balanced Search Tree).在一棵具有N 个节点的树中,我们希望该树的高度能够维持在lgN左右,这样我们就能保证只需要lgN次比较操作就可以查找到想要的值.不幸的是,每次插

HDU 5775 Bubble Sort(树状数组)

题目链接:HDU 5775 题面: Bubble Sort Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 709    Accepted Submission(s): 418 Problem Description P is a permutation of the integers from 1 to N(index startin

2-3查找树

定义 如果中序遍历2-3查找树,就可以得到排好序的序列.在一个完全平衡的2-3查找树中,根节点到每一个为空节点的距离都相同. 查找 在进行2-3树的平衡之前,我们先假设已经处于平衡状态,我们先看基本的查找操作. 2-3树的查找和二叉查找树类似,要确定一个键是否属于2-3树,我们首先和其跟节点进行比较.如果它和其中任意一个相等,查找命中:否则我们就根据比较的结果找到指向相应区间的链接,并在其指向的子树中递归地继续查找.如果这是个空链接,查找未命中.查找过程如下图: 插入 往一个2-node节点插入

OA项目11:部门列表树状显示功能及其他代码优化

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 使用递归使部门列表树状显示: 1.写一个工具类,实现通过顶级部门查询所有,具体如下: 1 package cn.clear.oa.util; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.List; 6 7 import cn.clea