在 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