在 C# 中检查进程是否正在运行

Muhammad Maisam Abbas 2024年2月16日
  1. 用 C# 中的 Process.GetProcessByName() 函数检查进程是否正在运行
  2. 使用 C# 中的 Process.GetProcessById() 函数检查进程是否正在运行
在 C# 中检查进程是否正在运行

本教程将介绍检查进程是否在 C# 中运行的方法。

用 C# 中的 Process.GetProcessByName() 函数检查进程是否正在运行

Process.GetProcessByName() 函数获取 C# 中所有相同名称的正在运行的进程。Process.GetProcessByName() 函数将进程名称作为输入,并返回以相同名称运行的所有进程的数组。我们可以使用这种方法来检查系统中是否有进程正在运行。请参见以下代码示例。

using System;
using System.Diagnostics;

namespace check_if_process_is_running {
  class Program {
    static void Main(string[] args) {
      Process[] processes = Process.GetProcessesByName("notepad");
      if (processes.Length == 0) {
        Console.WriteLine("Not running");
      } else {
        Console.WriteLine("Running");
      }
    }
  }
}

输出:

Running

在上面的代码中,我们检查了系统上是否正在运行名为 notepad 的进程。我们将 Process.GetProcessByName("notepad") 函数的结果存储在一系列进程中。如果数组的长度为零,这意味着该数组为空,则该进程未运行。如果数组中甚至只有一个元素,这意味着该数组不为空,则具有指定名称的进程正在我们的系统上运行。

使用 C# 中的 Process.GetProcessById() 函数检查进程是否正在运行

Process.GetProcessById() 函数获取在我们的系统中运行的进程,该进程具有 C# 中指定的进程 ID。Process.GetProcessById() 函数将进程 ID 作为参数,并返回具有指定 ID 的 Process 类的实例。此方法还可用于检查进程是否在我们的系统上运行。下面的代码示例向我们展示了如何使用 C# 中的 Process.GetProcessById() 函数检查系统中是否正在运行某个进程。

using System;
using System.Diagnostics;

namespace check_if_process_is_running {
  class Program {
    static bool isRunning(int id) {
      try {
        Process.GetProcessById(id);
      } catch (InvalidOperationException) {
        return false;
      } catch (ArgumentException) {
        return false;
      }
      return true;
    }

    static void Main(string[] args) {
      bool running = isRunning(15);
      if (running) {
        Console.WriteLine("Running");
      } else {
        Console.WriteLine("Not Running");
      }
    }
  }
}

输出:

Not Running

在上面的代码中,我们创建了一个 isRunning() 函数,用于检查进程是否正在运行。isRunning() 函数将进程 ID 作为参数,如果进程正在运行,则返回 true,如果未运行,则返回 false

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Process