Méthode pour obtenir un vecteur de processus :
bool GetListeProcessus(vector<PROCESSENTRY32> *maListeDeProcessus) { HANDLE hProcessSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); if(hProcessSnapshot != INVALID_HANDLE_VALUE) { PROCESSENTRY32 monProcessus; monProcessus.dwSize = sizeof(PROCESSENTRY32); if(Process32First(hProcessSnapshot, &monProcessus)) { do { maListeDeProcessus->push_back(monProcessus); } while(Process32Next(hProcessSnapshot, &monProcessus)); } CloseHandle(hProcessSnapshot); return true; } else { return false; } }
Méthode pour obtenir un vecteur de threads :
bool GetListeThreads(vector<THREADENTRY32> *maListeDeThreads) { HANDLE hThreadSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, NULL); if(hThreadSnapshot != INVALID_HANDLE_VALUE) { THREADENTRY32 monThread; monThread.dwSize = sizeof(THREADENTRY32); if(Thread32First(hThreadSnapshot, &monThread)) { do { maListeDeThreads->push_back(monThread); } while(Thread32Next(hThreadSnapshot, &monThread)); } CloseHandle(hThreadSnapshot); return true; } else { return false; } }