问题描述
如题,在C#/.NET应用程序编程开发中,如何使用命名空间System.Diagnostics
的Process
类判断某个进程正在运行?
方案一
.NET内置的System.Diagnostics.Process
类中,可以通过方法GetProcessesByName()
获取指定进程名称的进行信息,如下:
Process[] pname = Process.GetProcessesByName("你的进程名称");
if (pname.Length == 0)
MessageBox.Show("nothing");
else
MessageBox.Show("run");
或者,你可以使用Process.GetProcesses()
方法获取到当前计算机上所有正运行的进程数组集合,如下:
Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist){
Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}
方案二
编写一个C#的Process
静态扩展方法,如下:
public static class ProcessExtensions
{
public static bool IsRunning(this Process process)
{
if (process == null)
throw new ArgumentNullException("process");
try
{
Process.GetProcessById(process.Id);
}
catch (ArgumentException)
{
return false;
}
return true;
}
}
温馨提示:本文标注有(完整示例)的示例代码可以直接粘贴在try.dot.net中运行。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册