HANDLE hSourceHandle;
DWORD pid[100];
DWORD size = 0;
EnumProcesses(pid,sizeof(pid),&size);
size = size/sizeof(DWORD);
printf("process num is %d/n",size);
for (int i = 0;i<size;i++)
{
hSourceHandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid[i]);
if (hSourceHandle)
{
HMODULE hMod[100];
DWORD dwModSize = 0;
BOOL bRet = EnumProcessModules(hSourceHandle,hMod,sizeof(hMod),&dwModSize);
if (bRet)
{
dwModSize = dwModSize/sizeof(HMODULE);
char szName[100];
for (int i = 0;i<dwModSize;i++)
{
DWORD dwRet = GetModuleBaseName(hSourceHandle,hMod[i],szName,sizeof(szName));
if (dwRet)
{
printf("Mod %d Name is %s . /n",i,szName);
if (strcmp(szName,"asmtest.exe") == 0)
{
goto FindProcessOK;
}
}
}
printf("...............One Process End .............../n");
}
}
}
FindProcessOK:
上面的一段程序是遍历寻找exe用goto语句非常适合