0
我必须要2个列表框,另一个是用于获取特定过程(我将它列入类似chrome,mspaint,记事本等),当这些程序运行我的标签颜色时会变绿,当其中一个程序关闭时,标签会变为红色,然后是接近的程序名称。我的问题是,当我关闭任何程序时,我无法指定关闭的程序,它只会在我的标签始终变为红色时执行。在c#中获取任务管理器的特定过程
这里是我的代码:
private void running_process()
{
Process[] processes = Process.GetProcesses("PCNAME");
foreach (Process p in processes)
{
foreach (string item in listBox2.Items)
{
if (item == p.ProcessName)
{
listBox1.Items.Add(p.ProcessName);
}
if (listBox1.Items.Contains(item))
label4.BackColor = Color.Green;
else
label4.BackColor = Color.Red;
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
listBox1.Items.Clear();
running_process();
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
你能澄清 - 你有2个列表框。 ListBox1 - 适用于在listBox2和listBox2中运行AND的进程,以过滤所有进程。如果这些清单不同,label4应该是红色的,如果它们相同,它们应该是绿色的? – JleruOHeP
我觉得这是一个设计问题,你可能需要存储所有进程ID来检查它是否关闭。 – Prisoner
@JleruOHeP label4应该是红色,如果其中一个程序是关闭的,并且如果列表框2中列出的所有程序都在运行,则该标签为绿色 – NatsuDragneel