#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <psapi.h> //+ libpsapi.a
#include <limits.h>
int main(int argc, char *argv[])
{
char Path[MAX_PATH]; //放路径的
DWORD Process[1024],ProcessCount,Needed;//进程ID 和 进程数量
HMODULE hModule; //取模块
int i;
EnumProcesses(Process,sizeof(Process),&Needed);//枚举进程
ProcessCount = Needed / sizeof(DWORD); //进程数量
for (i=0;i<ProcessCount;i++) //没 什么 说 的
{
//打开进程 用查询和读取标志
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,Process[i]);
//取模块第一个路径 一般都是EXE的路径
EnumProcessModules(hProcess,&hModule,sizeof(HMODULE),&Needed);
//把路径放到Path变量
GetModuleFileNameEx(hProcess,hModule,Path,sizeof(Path));
//打印
printf("%-6d%s\n",Process[i],Path);
}
//?????????????
printf("Process Count:%d",ProcessCount);
getch();
return 0;
}