プロセスの種類(アプリ、Windows プロセス、バックグラウンド プロセス)について

タスクマネージャーの [プロセス] タブでプロセスの種類を確認すると、「アプリ」、「Windows プロセス」、「バックグラウンド プロセス」という種類があるのが分かります。この状態の違いについて解説されたブログがありました。

https://blogs.msdn.microsoft.com/oldnewthing/20171219-00/?p=97606

このページによると、プロセスに可視ウィンドウがある場合は「アプリ」と判定され、プロセスがクリティカルと指定されている場合は「Windows プロセス」。それ以外は「バックグラウンド プロセス」と判定されるようです。Windows プロセスかどうかを考えない場合、C# のプログラムで指定されたプロセス ID がアプリであるかどうか判定するコードは下記のようにかけるようです。