2016-07-26 39 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