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

来源:互联网 发布:gartner 云计算 2015 编辑:程序博客网 时间:2024/06/04 00:43
#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();}

0 0
原创粉丝点击