2017-05-01 1 views
0

Je tente de remplir une zone de liste avec une liste de processus en cours d'exécution afin que mes utilisateurs puissent sélectionner le processus qu'ils souhaitent surveiller.Comment lister les processus en cours d'exécution dans listbox ou une zone de liste déroulante

J'ai essayé ce qui suit, avec beaucoup de variations et je n'arrive pas à le faire fonctionner. Il ne fait rien, cependant, j'ai vu d'autres disant que cela a fonctionné pour eux. Des idées?

+0

Le code affiché ne pose aucun problème. D'où appelez-vous cela? Est-ce que vous réinitialisez les éléments ailleurs? –

Répondre

0

Avez-vous essayé d'utiliser une minuterie ou un fil? OU Insérez le code ci-dessous dans l'événement de clic sur le bouton.

Process[] allProc = Process.GetProcesses(); 
    foreach (Process p in allProc) 
       { 
         listBox1.Items.Add(p.ProcessName); 
       } 
0

D'accord, je ne suis pas sûr que ce qualifie vraiment comme une réponse, mais voici ce que je suggère: faire un peu de dépannage pour comprendre exactement ce qui de plusieurs problèmes qui se passe.

La première chose que je ferais quelque chose comme ceci:

string fancyDebugString = ""; 
foreach(Process p in Process.GetProcesses()) 
{ 
    fancyDebugString += p.ProcessName + ","; 
    //listBox1.Items.Add(p.ProcessName); 
} 
MessageBox.Show(fancyDebugString); // or whatever feedback mechanism you can hook into. 

... cela couvrira beaucoup de différents problèmes possibles: les Process.GetProcesses() n'est pas ENUMERE la liste des processus est vide en quelque sorte, le code n'est pas appelé du tout pour une raison quelconque, etc

Si cela fonctionne, et affiche une liste de processus séparés par des virgules? Décommentez l'ajout de listBox - voir si l'ajout de la zone de liste détraque le foreach d'une manière ou d'une autre, et vérifie que listBox1 a les éléments après.