API枚举系统进程

用CreateToolhelp32Snapshot/Process32First/Process32Next API枚举系统进程。在很多情况下需要对系统的进程进行操作,方法有很多种但最常用的是CreateToolhelp32Snapshot/Process32First/Process32Next 一系列API 实现结束进程使用TerminateProcess 下面的函数可以使现对进程的枚举: int ProcessList() { PROCESSENTRY32 pe32; pe32.dwSize=sizeof(pe32); int count=0; HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap==INVALID_HANDLE_VALUE) { printf("CreateToolhelp32Snapshot调用失败!"); return -1; } BOOL bMore=::Process32First(hProcessSnap,&pe32); printf("%20s/t%10s/n","进程名","PID"); printf("====================================/n"); while(bMore) { count++; printf("%20s/t%10d/n",pe32.szExeFile,pe32.th32ProcessID); bMore=::Process32Next(hProcessSnap,&pe32); } ::CloseHandle(hProcessSnap); printf("====================================/n"); printf("/n当前系统进程数为:%d/n",count); return 0; } 结束进程可以使用下面的函数:(使现其中dwid为想要结束的进程ID可通过列进程的函数得到) int TerminateProcessFromId(DWORD dwId) { BOOL bRet=FALSE; HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId); if(hProcess!=NULL) { bRet=::TerminateProcess(hProcess,0); } ::CloseHandle(hProcess); if(bRet) printf("%d 进程结束成功....../n/n/n/n",dwId); else printf("%d 进程结束失败....../n/n/n/n",dwId); return 0; }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值