侧身向南边

灯火阑珊尽歌舞,池阁清冷穷诗书

.NET关于操作进程的简单示例

好久未更新,惭愧惭愧……

引入名称空间:using System.Diagnostics;

 

开始某个进程,例如,打开记事本:

Process process1 = new Process();

process1.StartInfo.FileName = "NotePad.exe";

process1.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;

process1.Start();

 

终止某个进程:

Process[] p = Process.GetProcessesByName("NotePad");

if (p.Length >0)

{

if (!p[0].HasExited)

{

if (p[0].Responding)

{

p[0].CloseMainWindow();

}

else

{

p[0].Kill();

}

}

}

 

线程的HasExited属性用来确定线程是否已关闭。如果进程已关闭,将返回 true 属性值;如果进程仍在运行,将返回 false 属性值。

 

线程的Responding属性确定进程的用户界面是否正在响应。尝试读取 Responding 属性时,将向目标进程的用户界面发送一个请求。如果立即有响应,则返回属性值为 trues,可以调用 CloseMainWindow方法关闭应用程序;如果界面没有响应,则返回 false 属性值,可以调用 Kill 方法强制进程关闭。

 

 

 

posted on 2006-08-13 17:15 KissKnife 阅读(884) 评论(4)  编辑 收藏 网摘 所属分类: .NET C/S

Feedback

#1楼 2006-08-14 10:17 Java、.Net技术网      

我测试一下:启动进程可以,关闭不行!

启动进程
private void proccess_Click(object sender, System.EventArgs e)
{
Process pc=new Process();

pc.StartInfo.FileName="NotePad.exe";

pc.StartInfo.WindowStyle=ProcessWindowStyle.Normal;

pc.Start();

}

关闭进程:
private void CloseProcessBtn_Click(object sender, System.EventArgs e)
{
Process[] pc=Process.GetProcessesByName("NotePad.exe");

if (pc.Length>0)
{
for (int i=0;i<pc.Length;i++)
{
if (!pc[i].HasExited)
{
if (pc[i].Responding)
{
pc[i].CloseMainWindow();
}
else
{
pc[i].Kill();

}
}
}
}
}

我点关闭进程按钮,没有反映!
  回复  引用  查看    

#2楼[楼主] 2006-08-14 12:53 KissKnife      

Process[] pc=Process.GetProcessesByName("NotePad.exe");
应该是:
Process[] pc=Process.GetProcessesByName("NotePad");
  回复  引用  查看    

#3楼 2006-08-14 13:44 xing      

学习一下   回复  引用  查看    

#4楼 2006-08-18 11:46 Java、.Net技术网      

谢谢楼主,可以了   回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 475704




相关文章:

相关链接:

导航

统计信息

News

与我联系

搜索

 

留言簿

随笔分类(61)

随笔档案(73)

积分与排名

最新评论

阅读排行榜