CreateToolhelp32Snapshot枚举进程

来源:互联网 发布:用户体验培训 知乎 编辑:程序博客网 时间:2024/05/16 12:22
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
 
int main(int argc, char **args)
{
 int    count = 0;
 char   shortpath[256];
 PROCESSENTRY32 pinfo;
 MODULEENTRY32 minfo;
 HANDLE hModule;
 
 pinfo.dwSize = sizeof(PROCESSENTRY32);
 minfo.dwSize = sizeof(MODULEENTRY32);
 
 HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 BOOL report = Process32First(hProcess, &pinfo);
 
 while (report)
 {
  hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pinfo.th32ProcessID);
  Module32First(hModule, &minfo);
  GetShortPathName(minfo.szExePath, shortpath, 256);
  printf("%-3d%s  %s/n", ++count, pinfo.szExeFile, shortpath);
  report=Process32Next(hProcess,  &pinfo);
  
  CloseHandle(hModule);
 }
 
 CloseHandle(hProcess);
 
 return 0;
}