確切地說標題說什麼,在列表框中列出高優先級進程
我需要幫助瞭解如何列出列表框中的高優先級進程。我能夠拉起列表框中的所有進程,但未經過濾。
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」
什麼是你的問題?如果您不知道如何獲得優先級,那麼答案就是使用['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
這是我進入的大方向,在哪裏把它放在代碼中。 – Nic
@Quantic一旦我添加了代碼,就會拋出一個豁免。訪問被拒絕。我試着編譯運行在管理模式下的EXE,仍然是或多或少相同的事情。 – Nic