重新学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控件中去。如果终止失败,就调用异常处理,显示异常信息。

浙公网安备 33010602011771号