2016-07-26 41 views
0

确切地说标题说什么,在列表框中列出高优先级进程

我需要帮助了解如何列出列表框中的高优先级进程。我能够拉起列表框中的所有进程,但未经过滤。

 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(); 
     } 

我有一个标签来计算当前列表中的进程数量。高优先级列表框是我想要做的下一步。

补充:

 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(); 

解决了我的问题。

 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); 
      } 

     } 
    } 

完成工作。

Windows不喜欢 “ProcessPriorityClass.High”

+1

什么是你的问题?如果您不知道如何获得优先级,那么答案就是使用['Process.PriorityClass'](https://msdn.microsoft.com/en-us/library/system.diagnostics.process.priorityclass (v = vs.110).aspx)属性:'if(allprocs [i] .PriorityClass == PriorityClass.High){add to list box}' – Quantic

+0

这是我进入的大方向,在哪里把它放在代码中。 – Nic

+0

@Quantic一旦我添加了代码,就会抛出一个豁免。访问被拒绝。我试着编译运行在管理模式下的EXE,仍然是或多或少相同的事情。 – Nic

回答

0

尝试

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

请确保您有using system.linq

+0

不幸的是,它也没有采取这种做法。 无法将类型'System.Collections.Generic.IEnum 隐式转换为'Sys.Diag.Process' – Nic

+0

编辑 - 再试一次 – pm100

+0

访问被拒绝。本机错误代码5.删除任何有关高优先级的代码。 – Nic