Classe sur les processus (et leurs modles) ==> permet d'avoir les infos, lister, killer, changer la priorité, suspendre...

Soyez le premier à donner votre avis sur cette source.

Vue 8 637 fois - Téléchargée 1 472 fois

Description

Cette source est une classe rapide (parce que c'est beaucoup plus propre ainsi) qui permet de faire diverses opérations sur les processus.

Voici les fonctions disponible :
-Enumérer les processus
-Enumérer les modules de processus
-changer la priorité
-obtenir le chemin d'un processus depuis son PID
-obtenir le nom d'un processus depuis son PID
-obtenir le temps processeur d'un processus
-killer un processus
-suspendre/reprendre un processus
-vérifier l'existence d'un processus
-obtenir 20 infos sur chaque processus, et 10 sur chaque module

Le code donne automatiquement le privilege DEBUG au programme (compte admin nécessaire il me semble).

Code TRES commenté. Je sais que je n'invente rien, mais cette source a le mérite d'être une classe et de marcher correctement.

Source / Exemple :


'Utilisation du code :
'C'est une classe, on la définit donc comme ceci :

Private MaClasse As clsProcess
Set MaClasse = New clsProcess

'Les informations sur un procesus sont obtenues en faisant :
MaClasse.GetProcess(PID).szImagePath '(pour avoir le path complet, par exemple)

'Possiblité d'avoir récursivement les processus parents en faisant par exemple :
MaClasse.GetProcess(PID, True).procParentProcess.procParentProcess.szImagePath  '(obtient le path du processus qui a lancé le processus qui a lancé le processus désigné par PID).

'Pour obtenir le nom d'un module SANS PASSER par EnumerateModules
sName = MaClasse.GetProcess(MonPID, , True).procModules(2).szExeFile   'pour avoir le path du second module

'Voir l'exemple pour comprendre comment obtenir TOUTES les infos

Conclusion :


Laissez un commentaire et une note SVP ;)

Dernier point ; vous pouvez très facilement utiliser cette source dans votre programme, mais aussi trè facilement ajouter des fonctions à la classe.
Les 3 classes sont nécessaires dans votre application.

Je ne pense pas mettre à jour cette source (sauf si vous voyez des bugs).

Merci beaucoup, @+

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
34
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2008

Salut, j'ai tester ton code et sa marche bien.

Mais jai un petit souci:

Si je créé un nouveau projet avec tes 4 classes, dans l'ide je peut lister sans problème mais une fois compilé sa 'bloque' dans la sub EnumerateProcess juste apres avoir énumérer csrss.exe

Quelqu'un a un idée du problème?
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Salut, désolé de ne répondre que maintenant, mais je l'avais fait il y a fort longtemps et a priori la réponse n'est pas apparue ??
Comme je passais ici par hasard, je vois çà...

Enfin bon, je répond quand même 3 mois après...

- pour récupérer l'usage de l'UC, c'est par ici : http://www.vbfrance.com/codes/POURCENTAGE-UTILISATION-CPU-PROCESSUS-ENFIN_38633.aspx

- ta méthode pour détecter les processus planté n'est pas très bonne. 50 signifie 50% d'utilisation du processeur, c'est à dire que le processus mange toutes les ressources (puisque tu dois avoir soit un processeur multi-coeurs, soit un pentium HT avec 2 processeurs logiques). Donc si un programme mange 50% d'UC (un jeu gourmand par exemple), il sera detecté en tant que programme planté.
La meilleure solution est ceci : http://www.vbfrance.com/codes/LISTE-TACHES-COMME-DANS-ONGLET-APPLICATION-GESTIONNAIRE-TACHES_27148.aspx
Il faut utiliser la fonction IsApplicationHung.

@+ et désolé de répondre si tard
Messages postés
2
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
12 février 2007

Volient_ken ton code est bon et le programme fonctionne.

Je cherche à choper l'info contenu dans la colonne "Processeur" (pas "temps processeur") du TSKMNGR. J'ai lancé ton programme mais je n'arrive pas a la trouver. Peux-tu m'aiguiller.?

Voici ce que je veux faire dis moi ce que tu en penses.
Il m'arrive d'avoir mon appli qui plante et se retrouve sans fenetre visible (Classique). j'ai remarqué que dans ce cas la colonne processeur indique 50 pour le processus "planté".

Si l'utilisateur relance l'appli je voudrai d'abord killer le processus planté après l'avoir identifié avec cette méthode.

Quelqu'un a t'il une autre idée pour repérer une appli qui a planté. Car pour l'utilisateur mongolien de base c'est pas simple d'aller stoper le process dans le TaskMngr.

Merci
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

si j'ai bien capter le principe ses que le code est lu par le processeur et suivant le travail du processeur on peut alors faire un shema genre

0100100110
_.__._.._.

et en cela donne un resultat qui permet de decrypter la faille a ete decouverte il y a quelque jour par des ingenieur et il devront changer tt les processeur intel par les nouveau et de plus fixer un logiciel dans le "coeur" du processeur pour etablir comme un "mur" pour eviter ces probleme , ces securitee sont utilisee pour tous ce qui es carte bancaire , transaction internet , payement , code de securitee web etc

j'ai regarder sur le web mais ce n'est pas encore publier, c'est passer hier sur le journal de la rtbf ^^ ou avant hier je sais plus mais me semble que c'etais hier
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Mwao, çà m'a l'air bien tendu comme manipulaton !

Tes potes ont raison, coder si bas niveau est infaisable en VB.

Mais quel(s) rapport(s) entre le processeur avec les protections SSL 128 bits ?

@+
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.