Comment puis-je liste tous les processus en cours d'exécution dans Windows?
Je voudrais trouver un moyen de faire une boucle par tous les processus actifs et de faire le diagnostic des vérifications (mem utilisation, le temps cpu, etc) un peu similaire au gestionnaire de tâches.
Le problème est décomposé en deux parties:
- Trouver tous les processus
- Trouver des diagnostics attributs à leur sujet
Je ne suis pas sûr que même dans ce que l'espace de noms d'aller à la recherche à ce sujet. Toute aide /conseils /liens est reconnaissante.
Vous devez vous connecter pour publier un commentaire.
Trouver tous les processus
Vous pouvez le faire à travers le Processus de la classe
L'Exécution Des Diagnostics
Pouvez-vous nous donner quelques informations ici? Il n'est pas clair ce que vous voulez faire.
Le Processus de la classe donne un peu d'information qui pourraient vous aider. Il est possible d'interroger cette classe pour
MODIFIER
OP mentionné qu'ils veulent obtenir de la mémoire et du PROCESSEUR de l'information. Ces propriétés sont facilement disponibles sur le Processus de la classe (retourné par la GetProcesses()). Ci-dessous la page MSDN qui répertorie toutes les propriétés prises en charge. Il existe différents de la mémoire et de CPU disponible que sera la suite de vos besoins.
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx
Code:
Ajoutez cette ligne à l'aide de votre liste:
Maintenant vous pouvez obtenir une liste de processus avec le Processus.GetProcesses() la méthode, comme on le voit dans cet exemple:
Trouver tous les processus est assez simple en fait:
JaredPar déjà souligné le
Process
classe, donc je vais juste ajouter, que vous devez être conscient, que la classe prend un instantané du processus' information lors de la création de cette instance. Ce n'est pas une vue en direct. Pour le mettre à jour, vous devez appelerRefresh()
sur l'instance.Également garder à l'esprit que le processus peut se fermer alors que vous inspectez, donc être préparé pour attraper les exceptions et les traiter en conséquence.
Et enfin, si vous appelez
Process.GetProcesses()
, vous aurez également la pseudo-processus "en veille" et "système". IIRC ils ont des Id de processus de sorte que vous pouvez facilement filtrer les.Quel système d'exploitation utilisez-vous? - Je le prendre à partir de votre C# tag que c'est windows?
Si oui, découvrez WMI, en particulier la classe Win32_Process. Voici la référence MSDN: http://msdn.microsoft.com/en-us/library/aa394372(SV.85).aspx
Ainsi que d'un couple de scénarios d'utilisation ici (comme l'obtention d'une liste de processus): http://msdn.microsoft.com/en-us/library/aa394599(SV.85).aspx
Eh bien, vous pouvez le faire en powershell
1.Trouver tous les processus
2.Trouver diagnostics attributs à leur sujet
Le code ci-dessus sera de retour tous les processus avec plus de 200 poignées, vous pouvez spécifier votre diagnostic attributs de cette manière facilement.
Pour plus d'informations sur comment gérer les processus à l'aide de powershell voir ce
ici, le procédé arrray contient tout le nombre de processus présents en elle.
C'est de cette façon que je préfère pour accéder au processus: