MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 2009
-
8 août 2006 à 12:12
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 2009
-
25 nov. 2008 à 13:43
Bonjour à tous,
voilà je crée une bibliothèque de gestion de processus et j'aimerais proposer des fonctions permettant de récupérer, par exemple, le nom du processus en connaissant son ID.
Actuellement la seule méthode que je connaisse pour faire ça (et que j'utilise en ce moment), c'est de lister tous les process jusqu'à trouver le mien, et alors j'ai accès à ses propriétés dans le type WTS_PROCESS_INFO ou PROCESSENTRY32.
Simplement j'aimerais avoir accès à ces infos sans avoir à lister tous les processus (question de rapidité)... Est ce possible ?
(pour les fenetres y'a plein de fonctions spéciales où il suffit de passer le hwnd en parametre, alors que la il faut à chaque fois lister tous les process...)
media6
Messages postés51Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention 7 juillet 2010 25 nov. 2008 à 09:17
Bonjour,
tu as trouvé la réponse à ta question ?
Si oui, je suis intéresssé....
J'ai un bout de code qui liste tous les processus ouverts en boucle et qui m'avertit dès qu'il y en a un nouveau ou un qui se ferme. Le problème est le même que le tien puisque je liste tous les processus et c'est trop long.
En plus, j'ai remarqué que les handles utilisés par le prog augmentent à une vitesse ahurissante et finissent par saturer la mémoire.
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 25 nov. 2008 à 13:23
Salut,
Concernant les handles, c'est une fuite de mémoire, vérifie que tu ferme bien tous tes handles après chaque utilisation.
Concernant l'autre problème, de mémoire je crois que non ce n'est pas possible (je pense que les processus sont représentés par une liste chainée en mémoire tout simplement). Mais beaucoup de chemin a été fait depuis et je t'invite à aller regarder du coté de la VB System Library (c'est un projet que j'ai fait avec 2 autres programmeurs de vbfrance), elle permet une gestion bien plus simple et bien plus rapide que les API par défaut.
Bref, si tu cherche la meilleure méthode qu'on ai pu trouver en VB elle est utilisée la dedans.
media6
Messages postés51Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention 7 juillet 2010 25 nov. 2008 à 13:34
Merci pour la réponse, je vais aller voir cette source qui a l'air très intéressante et étudier tout ça.
Pour ce qui est du problème des handles, j'ai trouvé entre temps. C'est bien ce que tu dis, je ne les fermais pas après chaque utilisation !!
Alors effectivement, avec un timer réglé sur 500 ms et 10 handles à chaque fois, au bout d'1 heure, j'en étais à 72 000 et ça finisait par planter !
Pour ceux qui passeront par là et que ça intéresse :
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
fermer le handle juste après l'utilisation par :
Call CloseHandle(hSnapshot).