自分用パフォーマンスモニタを作っていて、ProcessクラスにEnableRaisingEvents(http://msdn2.microsoft.com/ja-jp/library/system.diagnostics.process.enableraisingevents(VS.80).aspx)プロパティなんて気の利いたものがあるので、死活監視に使えるかと思って使ってみた。実行してみると…。
ハンドルされていない例外 : System.NotSupportedException: 機能はリモート コンピュータでサポートされていません。 at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access) at System.Diagnostics.Process.OpenProcessHandle() at System.Diagnostics.Process.set_EnableRaisingEvents(Boolean value) (略)
なんて例外が出た…きゅぅ*1。まぁ、Win32 APIだとできないよなぁ…と思っていたので、半分以上予想されていた結末なんだけど。ドキュメントに明示的に書いていないので、将来変わる可能性があるとうれしいかも。
ついでにみつかったSystem.Diasgnostics.ProcessクラスのFAQ。
http://msdn.microsoft.com/netframework/programming/bcl/faq/SystemDiagnosticsProcessFAQ.aspx
*1:もちろんローカルホストのプロセスは問題なし