自プロセスに関する情報を取得するには、System.Diagnostics.Processクラスのメンバを参照します。 このクラスでは他プロセスを扱うこともできますが、現在のプロセス(自プロセス)を扱うにはProcess.GetCurrentProcessメソッドによってプロセスのインスタンスを取得します。
Processクラスからは、プロセス名・プロセスIDをはじめとして、以下のような情報を取得することができます。
プロパティ | 取得できる情報 | 備考 | |
---|---|---|---|
基本情報 | ProcessName | プロセス名 | |
Id | プロセスID | .NET 5以降では、Environment.ProcessIdプロパティからも自プロセスIDを取得できる | |
SafeHandle
Handle |
プロセスのネイティブハンドル | SafeHandleは、.NET Framework 4.6以降で使用可能 | |
BasePriority
PriorityClass |
プロセスの優先順位 | ||
StartTime | プロセスが起動した時刻 | ||
プロセッサ使用時間 | UserProcessorTime | ユーザーモードでのプロセッサ使用時間 | |
PrivilegedProcessorTime | 特権モードでのプロセッサ使用時間 | ||
TotalProcessorTime | ユーザーモード・特権モード合計のプロセッサ使用時間 | ||
メモリ | PagedMemorySize64 | プロセスに割り当てられたメモリ量 | |
WorkingSet64 | |||
VirtualMemorySize64ほか | |||
PeakPagedMemorySize64 | 同ピーク値 | ||
PeakWorkingSet64 | |||
PeakVirtualMemorySize64ほか | |||
プロパティ | 取得できる情報 | 備考 |
この他、Processクラスから取得できる情報についてはProcessクラスのドキュメントを参照してください。
メモリ使用量など、プロセスの詳細な状態を計測するにはパフォーマンスカウンタを用いることもできます。 詳しくはパフォーマンス情報の計測を参照してください。
マシンなどプロセスの実行環境・プラットフォームに関する情報を取得する方法についてはランタイム・システム・プラットフォームの情報、環境変数・自プロセスのパスなどに関する情報についてはプロセス・アセンブリの情報を参照してください。