すべてのアクティブなプロセスをループし、それらの診断チェック(メモリ使用量、CPU時間など)をタスクマネージャーに似た方法で見つけたいと思います。
問題は2つの部分に分けられます。
どの名前空間を調べればよいのかわかりません。ヘルプ/ヒント/リンクはありがたいです。
すべてのプロセスを検索する
あなたはProcessクラスを通じてこれを行うことができます
using System.Diagnostics;
...
var allProcesses = Process.GetProcesses();
診断を実行しています
ここでもう少し情報をいただけますか?あなたが何をしたいのか明確ではありません。
Processクラスは、あなたを助けるかもしれないが、少しの情報を提供します。このクラスをクエリすることが可能です
[〜#〜]編集[〜#〜]
OPは、メモリとCPUの情報を取得したいと述べました。これらのプロパティは、Processクラスですぐに使用できます(GetProcesses()によって返されます)。以下は、サポートされているすべてのプロパティをリストしているMSDNページです。さまざまなメモリとCPUがあり、ニーズに適合します。
http://msdn.Microsoft.com/en-us/library/system.diagnostics.process.aspx
コード:
この行を使用リストに追加します。
using System.Diagnostics;
これで、次の例に示すように、Process.GetProcesses()メソッドを使用してプロセスのリストを取得できます。
Process[] processlist = Process.GetProcesses();
foreach (Process theprocess in processlist)
{
Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}
すべてのプロセスを見つけることは実際にはかなり簡単です:
using System.Diagnostics;
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
{
// Get whatever attribute for process.
}
JaredParはすでにProcess
クラスを指摘しているので、インスタンスが作成されるときにクラスがプロセスの情報のスナップショットをとることに注意してください。ライブビューではありません。これを更新するには、インスタンスでRefresh()
を呼び出す必要があります。
また、検査中にプロセスが終了する可能性があるので、例外をキャッチしてそれに応じて処理する準備をしておいてください。
そして最後にProcess.GetProcesses()
を呼び出すと、疑似プロセス「アイドル」と「システム」も取得されます。 IIRCには特定のプロセスIDがあるため、簡単に除外できます。
using System.Diagnostics;
class Program
{
static void Main()
{
Process[] processlist = Process.GetProcesses();`
}
}
ここで、プロセス配列には、そこに存在するすべてのプロセス数が含まれています。
まああなたはこれをpowershellで行うことができます
1.すべてのプロセスを見つける
get-Process
2.それらに関する診断属性を見つける
get-Process | where-object { $_.Handles -gt 200 }
上記のコードは200以上のハンドルを持つすべてのプロセスを返します。この方法で診断属性を簡単に指定できます。
これは私がプロセスにアクセスする方法です:
static void Main(string[] args)
{
Process.GetProcesses().ToList().ForEach(p =>
{
Console.WriteLine(
p.ProcessName + " p.Threads.Count=" + p.Threads.Count + " Id=" + p.Id);
});
Console.ReadKey();
}
どのオペレーティングシステムを使用していますか?私はそれがあなたのC#タグからそれがwindowsだと思いますか?
その場合は、WMI、特にWin32_Processクラスを確認してください。これがMSDNリファレンスです: http://msdn.Microsoft.com/en-us/library/aa394372(VS.85).aspx
ここでのいくつかの使用シナリオと同様に(プロセスのリストの取得など): http://msdn.Microsoft.com/en-us/library/aa394599(VS.85).aspx