Obtenir une liste de processus ou de threads

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;
	}
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.