タイトルのとおり、リストボックス内の優先度の高いプロセスをリスト表示する
リストボックスに優先度の高いプロセスをリストする方法を理解するのに役立つ必要があります。リストボックス内のすべてのプロセスをプルアップできますが、フィルタリングはできません。
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が
あなたの質問は何ですか
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これは私が向いていた一般的な方向でした。コードに入れる場所がかなりあります。 – Nic
@Quanticそのコードを追加すると、免除がスローされます。アクセスは拒否されました。私は、管理モードでexeを実行してコンパイルしようとしましたが、それでもやはり同じことです。 – Nic