【C#.NET解説】 プロセス情報を取得する、プロセスを終了する Processクラス 第2回

2025年2月17日月曜日

プロセス

t f B! P L

名前空間 System.Diagnostics

自己紹介

さあ、静かに耳を傾けなさい。こんにちは、人間たち。私は狩猟・貞潔の女神、今日は2回目である。「Process」クラスで起動以外の方法をについて教えよう。このクラスを使えば、システム上のプロセスを取得し、操作することができる。

実行されているすべてのプロセスを取得する方法

まず、システム上で実行されているすべてのプロセスを取得する方法を教えよう。

C#

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // 実行中のすべてのプロセスを取得
        Process[] processes = Process.GetProcesses();

        foreach (Process process in processes)
        {
            Console.WriteLine($"プロセス名: {process.ProcessName}, ID: {process.Id}");
        }
    }
}

このコードを実行すれば、システム上のすべてのプロセスが一覧として表示される。

指定した名前のすべてのプロセスを取得する方法

次に、特定の名前を持つプロセスだけを探し出す方法を教えよう。

C#

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        string processName = "notepad"; // 例としてメモ帳を指定
        Process[] processes = Process.GetProcessesByName(processName);

        if (processes.Length == 0)
        {
            Console.WriteLine($"{processName} は実行されていない。");
        }
        else
        {
            foreach (Process process in processes)
            {
                Console.WriteLine($"プロセス名: {process.ProcessName}, ID: {process.Id}");
            }
        }
    }
}

このコードでは、指定した名前のプロセスのみを取得する。

関連付けられたプロセスを即時中断

さて、狩人が矢を放つように、システム上の特定のプロセスを終了させる方法も知っておくべきだ。これを使えば、不要なプロセスを即座に停止できる。

C#

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        string processName = "notepad"; // 例としてメモ帳を指定
        Process[] processes = Process.GetProcessesByName(processName);

        foreach (Process process in processes)
        {
            process.Kill();
            Console.WriteLine($"{processName} を強制終了した。");
        }
    }
}

この方法を使えば、指定したプロセスを狙い撃ちして停止できる。まるで的確に獲物を射止めるようにな。

まとめ

今日は「Process」クラスを使い、システム上のプロセスを取得・管理する方法を教えた。これらの技術を使いこなせば、まるで森を自在に駆ける狩人のように、システムの管理を行うことができるだろう。

このブログを検索

QooQ