2016-07-26 16 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); 
      } 

     } 
    } 

getの作業が完了しました。

Windowsが

+1

あなたの質問は何ですかusing system.linqを持っていることを確認してみてください "ProcessPriorityClass.Highを" 好きではありませんか?どのように優先順位を取得するのかわからない場合、答えは['Process.PriorityClass'](https://msdn.microsoft.com/en-us/library/system.diagnostics.process.priorityclass (v = vs.110).aspx)プロパティ: 'if(allprocs [i] .PriorityClass == PriorityClass.High){リストボックスに追加}' – Quantic

+0

これは私が向いていた一般的な方向でした。コードに入れる場所がかなりあります。 – Nic

+0

@Quanticそのコードを追加すると、免除がスローされます。アクセスは拒否されました。私は、管理モードでexeを実行してコンパイルしようとしましたが、それでもやはり同じことです。 – Nic

答えて

0

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

はあなたが

+0

それは悲しいことですが、それも受けませんでした。 'System.Collections.Generic.IEnum 型を' Sys.Diag.Process 'に暗黙的に変換できません – Nic

+0

編集しました - もう一度試してください – pm100

+0

アクセスが拒否されました。ネイティブエラーコード5.優先度の高いコードに関連するものはすべて削除してください。 – Nic

関連する問題