在ListBox中显示所有正在运行的应用程序并在c#中单击按钮时将其终止

时间:2018-05-06 19:36:00

标签: c# process listbox items

我想像这样收集列表框中的进程:

  

APP.EXE   otherapp.exe

但我得到:

  

的System.Diagnostics.Process(APP.EXE)   的System.Diagnostics.Process(otherapp.exe)

我的代码:

    private void Form1_Load(object sender, EventArgs e)
    {
        Process[] prs = (Process.GetProcesses());

        foreach (Process pr in prs)
        {
            listBox1.Items.Add(Convert.ToString(pr));
        }
    }

    private void button3_Click(object sender, EventArgs e)
    {
        Process[] prs = Process.GetProcesses();

        string item = Convert.ToString(listBox1.SelectedItem);

        //item.Kill();
    }

2 个答案:

答案 0 :(得分:0)

首先,您应该存储流程名称:

    foreach (Process process in Process.GetProcesses())
    {
        listBox1.Items.Add(process.ProcessName);
    }

之后,您可以使用该名称来获取进程并杀死它们:

    Process[] processes = Process.GetProcessesByName(listBox1.SelectedItem.ToString());

    foreach (Process process in processes)
    {
        process.Kill();
    }

有关流程类的详细信息,请参阅https://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.110).aspx

答案 1 :(得分:0)

您只需稍加更改即可使用相同的代码

 listBox1.Items.Add(Convert.ToString(pr.ProcessName));

所以简而言之

  private void Form1_Load(object sender, EventArgs e)
{
 Process[] prs = (Process.GetProcesses());

             foreach (Process pr in prs)
             {

                listBox1.Items.Add(Convert.ToString(pr.ProcessName));
             }
}

<强>输出:

enter image description here

<强>原因:

您只需在实例

上使用Property ProcessName属性