首页 / C#开发 / 正文

C#/.NET应用程序编程开发中如何判断某个进程正在运行?

2684 1 发布于: 2019-06-27 读完约需3分钟

问题描述

如题,在C#/.NET应用程序编程开发中,如何使用命名空间System.DiagnosticsProcess类判断某个进程正在运行?

方案一

.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中运行。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: ASP.NET Core应用程序编程开发中如何指定/修改端口号?

下一篇: C#/.NET应用程序编程开发中如何实现使用泛型方法读取配置文件选项参数?

本文永久链接码友网 » C#/.NET应用程序编程开发中如何判断某个进程正在运行?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册