浅谈C#中Process类的使用详解
程序员文章站
2023-12-20 14:26:22
process类的作用是对系统进程进行管理,我们使用process类中的一些方法结合winform开发个简单的进程管理器:
在使用process类的时候,先导入命名...
process类的作用是对系统进程进行管理,我们使用process类中的一些方法结合winform开发个简单的进程管理器:
在使用process类的时候,先导入命名空间system.diagnostics。
使用winform画出如上的界面,数据显示使用的是listview。
在窗体的load事件中写出如下代码:
复制代码 代码如下:
private void form1_load(object sender, eventargs e)
{
listview1.fullrowselect = true;
getprocess();
}
其中getprocess方法如下:
复制代码 代码如下:
private void getprocess()
{
listview1.items.clear();
process[] prolist = process.getprocesses(".");//获得本机的进程
lblnum.text = prolist.length.tostring(); //当前进程数量
foreach (process p in prolist)
{
listviewitem lvi = new listviewitem();
lvi.text = p.processname;
lvi.subitems.addrange(new string[] { p.id.tostring(),p.privatememorysize64.tostring() }); //进程id 使用内存
listview1.items.add(lvi);
}
}
如果想终止一个进程,先选中一个进程,点击上面的进程按钮:
click事件代码如下:
复制代码 代码如下:
private void button2_click(object sender, eventargs e)
{
if (listview1.selecteditems.count > 0)
{
try
{
string proname = listview1.selecteditems[0].text;
process[] p = process.getprocessesbyname(proname); //根据进程命获得指定的进程
p[0].kill(); //杀死该进程
messagebox.show("进程关闭成功!");
getprocess();
}
catch
{
messagebox.show("无法关闭此进程!");
}
}
else
{
messagebox.show("请选择要终止的进程!");
}
}
当然我们可以调用process的start方法来开启一个进程:
启动按钮的事件如下:
复制代码 代码如下:
private void button1_click(object sender, eventargs e)
{
if (textbox1.text != string.empty)
{
process.start(textbox1.text); //启动一个进程
}
else
{
messagebox.show("请输入启动项");
textbox1.focus();
}
}
运行程序,开始使用自己的进程管理器吧~~~~~