URGENT : Comment obtenir la consommation du processeur .....

Résolu
titanchou Messages postés 11 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 7 août 2009 - 3 nov. 2005 à 11:24
titanchou Messages postés 11 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 7 août 2009 - 4 nov. 2005 à 09:50
Bonjour,

J'ai deja posé cette question dans le forum système, mais peut-etre aurais-je plus de chance sur celui ci, qui doit etre plus visité.

Je suis en train de créer une appli dans laquelle je doit récupérer la consommation processeur pour un Process Id. J'ai donc récupérer l'Id dont j'ai besoin, et je voudrais savoir ce qu'il consomme en ressource (processeur). Comme le task manager de windows (le pourcentage processeur utilisé).

J'ai regardé le TASK MANAGER de 3psilon mais impossible de le comprendre :-(. Enfin la partie concernant le calcul.

Merci de m'éclairer rapidement :-)

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 nov. 2005 à 11:54
GetProcessTimes
GetThreadTimes

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
titanchou Messages postés 11 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 7 août 2009
4 nov. 2005 à 09:50
Merci bien.

Il ma fallut pas mal de recherches, mais ca devrait etre bon.

Je ne suis pas persuadé que cela marche vraiment par contre :(.

Voici mon bout de code.

int j = 0;

while(j <= 1)
{
HANDLE hProcess;
int iStatus;
FILETIME createTime;
FILETIME exitTime;
FILETIME kernelTime;
FILETIME userTime;
long processorTotUse;
long procUsed;

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pIdProcess);

iStatus = GetProcessTimes(hProcess, &createTime, &exitTime, &kernelTime, &userTime);
DWORD temp;
temp = GetLastError();
if ((iStatus) && (j == 0))
{
procUsed = userTime.dwLowDateTime+kernelTime.dwLowDateTime;
}
if ((iStatus) && (j == 1))
{
processorTotUse = ((kernelTime.dwLowDateTime+userTime.dwLowDateTime)- procUsed)/10000;
printf("%s pid %d : %02d, \n",ptsExeSoftware[pPosition]->exeSoftware ,pIdProcess, processorTotUse);
ptsExeSoftware[pPosition]->exeProcessorUse = processorTotUse;
}
CloseHandle(hProcess);
Sleep(100);
j++;
}

Une boucle pour pouvoir comparer 2 valeurs du process afin d'obtenir le pourcentage processeur. Mais j'ai quelques doutes quand aux résultats. J'ai l'impression que les resultats obtenus ne sont pas exacts.

Merci d'avance.
0
Rejoignez-nous