Question sur les processus

Signaler
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008
-
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008
-
Bonjour,
Voila, Je me demandais comment on peut obtenir l'adresse d'un programme qui est en court d'execution (en fouillant dans les processus), c'est pour faire un taskmanager plus évoluer que celui de windows.
Et au passage comment on fait pour donner au processus le nom d'utilisateur SYSTEM comme svchost.exe par exemple .

Voici ma fonction qui me permet de lister les processus (extrait d'une source) :

#####################################################
HANDLE hSnapPro;
PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};
hSnapPro = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
char *txt = NULL;
txt = new char[5];

do
{
/*On determine le nom du pross*/
char *nomproc = NULL;
nomproc = new char[50];
bool etpaf = false;
strcpy(nomproc, (pe.th32ProcessID == 0 ? "Idle" : pe.szExeFile));

Sleep(10);
}
while(Process32Next(hSnapPro, &pe));

delete[] txt;
CloseHandle(hSnapPro);
########################

Merci pour votre aide.

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
nomproc = new char[50];
noprmal de ne pas voir de delete[] ?


txt = new char[5];
Super utile de faire joujou avec le memory manager pour qlqs octets sur la pile...
char txt[8]; // PLUS SIMPLE TU MEURS

ciao...
BruNews, MVP VC++
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008

a ouais j'ai oublier le delect, pour les variables c'est juste une question d'habitude l'allocation dynamique, a part choisir le nombre de case grace a une variable, je voit pas bien se que sa change ...

Enfin bon, en cherchant un peu plus sur le forum j'ai trouver que pour verifier si un fichier est lancer il suffisait de l'ouvrir en mode exclusif, oui mais voila il ni avait pas d'exemple et donc je ne voit pas comment faire...

Amicalement Christophe