windows 枚举所有进程 通过快照
#include <TlHelp32.h>
1 //枚举系统中的进程 2 void fun15(int argc, char *argv[]){ 3 //创建进程快照 4 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 5 if (hSnapshot == INVALID_HANDLE_VALUE) { 6 printf("进程快照失败\n"); 7 return ; 8 } 9 //进程信息 10 PROCESSENTRY32 pe = {0}; 11 pe.dwSize = sizeof(pe); 12 //查找第一个进程 13 BOOL bRet = Process32First(hSnapshot, &pe); 14 while(bRet) { 15 //打印进程ID和进程的名称 16 printf("PID:%d\t名称:%s\n", pe.th32ProcessID, pe.szExeFile); 17 //查找下一个进程 18 bRet = Process32Next(hSnapshot, &pe); 19 } 20 //关闭句柄 21 CloseHandle(hSnapshot); 22 }
显示结果