Вы можете перечислить процессы, используя PSAPI , в частности EnumProcesses
Вам потребуется #include "psapi.h"
из SDK и добавить PSAPI.lib
к входам компоновщика.
Ex:
DWORD aiPID[1000], iCb=1000;
DWORD iCbneeded = 0;
if (!EnumProcesses(aiPID, iCb, &iCbneeded)) return(E_FAIL);
int iNumProc=iCbneeded/sizeof(DWORD);
for(int i=0; i < iNumProc; i++)
{
// First, get a handle to the process
HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, aiPID[i]);
if (!hProc) continue;
TCHAR szName[MAX_PATH] = _T("<unknown>");
HINSTANCE hMod = NULL;
if (EnumProcessModules(hProc, &hMod, sizeof(hMod), &iCbneeded))
{
GetModuleFileNameEx(hProc, hMod, (LPTSTR)szName, MAX_PATH);
}
CloseHandle(hProc);
}
Редактировать: Извините - Это дает только списки процессов ... чтобы получить потоки для каждого см. ListProcessThreads , передавая PID для каждого перечисленного процесса.