2016-07-26 2 views
0

Genau das, was der Titel sagt,Liste der Prozesse mit hoher Priorität im Listenfeld

Ich brauche Hilfe herausfinden, wie Sie Prozesse mit hoher Priorität in einer Listbox auflisten. Ich bin in der Lage, alle Prozesse in einer Listbox hochzuladen, aber ungefiltert.

 Process[] allprocs; 
    private void GetProccesses() 
    { 
     allprocs = Process.GetProcesses(); 
     if(Convert.ToInt32(ProcNumLabel.Text) != allprocs.Length) 
     { 
      ProcList.Items.Clear(); 

      for(int i=0; i<allprocs.Length; i++) 
      { 
       ProcList.Items.Add(allprocs[i].ProcessName); 
      } 
      ProcNumLabel.Text = allprocs.Length.ToString(); 
     } 

Ich habe eine Bezeichnung, die die Menge des Prozesses in der aktuellen Liste zählt. Das Listenfeld mit hoher Priorität ist mein nächster Schritt, den ich gerne machen würde.

Hinzugefügt:

 for(int i=0; i<allprocs.Length; i++) 
      { 

       ProcList.Items.Add(allprocs[i].ProcessName); 
       if(allprocs[i].PriorityClass == ProcessPriorityClass.High) 
       { 
        HiList.Items.Clear(); 
        HiList.Items.Add(allprocs[i].ProcessName); 
       } 
      } 
      ProcNumLabel.Text = allprocs.Length.ToString(); 

mein Problem gelöst.

 public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     GetAllProcesses(); 
    } 
    private void GetAllProcesses() 
    { 
     AllProcBox.Items.Clear(); 
     HiPriBox.Items.Clear(); 
     foreach(System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()) 
     { 
      if (p.BasePriority == 13) 
      { 
       HiPriBox.Items.Add(p.ProcessName); 
      } 
      if (p.BasePriority < 13) 
      { 
       AllProcBox.Items.Add(p.ProcessName); 
      } 

     } 
    } 

Holen Sie sich die Arbeit erledigt.

Windows nicht mag "ProcessPriorityClass.High"

+1

Was ist Ihre Frage? Wenn Sie nicht wissen, wie Sie die Priorität erhalten, dann verwenden Sie die ['Process.PriorityClass'] (https://msdn.microsoft.com/en-us/library/system.diagnostics.process.priorityclass (v = vs.110) .aspx) Eigenschaft: 'if (allprocs [i] .PriorityClass == PriorityClass.High) {Zur Liste hinzufügen}' – Quantic

+0

Dies war die allgemeine Richtung, in die ich mich bewegte, konnte einfach nicht herausfinden ganz wo, um es in den Code zu setzen. – Nic

+0

@Quantic Sobald ich diesen Code hinzugefügt habe, wird eine Ausnahme ausgelöst. Der Zugriff wurde verweigert. Ich habe versucht, das Ausführen der exe im Admin-Modus, immer noch das gleiche mehr oder weniger zu kompilieren. – Nic

Antwort

0

versuchen

allprocs = Process.GetProcesses().Where(p=>p.PriorityClass == PriorityClass.High).ToArray(); 

stellen Sie sicher, Sie haben using system.linq

+0

Leider hat es das auch nicht genommen. Kann Typ 'System.Collections.Generic.IEnum nicht implizit in' Sys.Diag.Process 'konvertieren – Nic

+0

bearbeitet - erneut versuchen – pm100

+0

Zugriff verweigert. Nativer Fehlercode 5. Entfernen Sie alles, was zu der hohen Priorität gehört, Code funktioniert. – Nic

Verwandte Themen