重新学C#编程154-进程与线程:进程类Process练习3-关闭选定的进程

继续Process类的练习。新建一个项目显示所有在运行的进程,显示在listbox控件中,选中其中的进程,鼠标右键点击弹出菜单“关闭进程”将其关闭。

前面添加

using System.Diagnostics;

窗体打开事件添加下面的代码

private void Form1_Load(object sender, EventArgs e)
{
  //查询所有在用的进程,显示在listbox1控件上
  listBox1.Items.Clear();
  Process[] process = Process.GetProcesses();
  foreach(Process item in process)
  {
    listBox1.Items.Add(item.ProcessName);
  }
}

先清空listbox所有内容,然后获取所有的进程,放入进程数组,然后逐项添加进listbox1控件。

右键弹出菜单的鼠标点击事件代码如下

private void 关闭进程ToolStripMenuItem_Click(object sender, EventArgs e)
{
  string processName = listBox1.SelectedItem.ToString();//获取选中的进程名字
  Process[] process = Process.GetProcessesByName(processName);
  if(process.Length>0)
  {
    try
    {
      foreach(Process item in process)
      {
        if(!item.HasExited)
        {
          item.Kill();
          MessageBox.Show(item.ProcessName + "已经关闭");
          listBox1.Items.Clear();
          //获取所有的正在运行的进程
          process = Process.GetProcesses();
          foreach(Process item1 in process)
          {
            listBox1.Items.Add(item1.ProcessName);
          }
        }
      }
    }
    catch(Exception err)
    {
      MessageBox.Show(err.Message);
    }
  }
}

首先获取鼠标右键点击的进程的名字,然后将同名的进程放入进程数组,如果数组长度大于0,说明这个进程是存在的。然后逐一判断每一个叫这个名字的进程是不是没有退出,如果没有退出,就使用进程的.kill方法终止这个进程,如果终止成功,就提示终止成功,然后清空listbox1控件,然后获取当前所有运行的进程,添加到listbox1控件中去。如果终止失败,就调用异常处理,显示异常信息。

posted @ 2021-06-21 21:58  来自金沙江的小鱼  阅读(109)  评论(0编辑  收藏  举报