【NetOffice】【Excel】死なないExcelプロセスをKillする。
- 2012.12.04 Tuesday
- 21:37
Source and Project
デバック中に中断したり、COMオブジェクトの解放を忘れたりするとExcelプロセスが残ったままになってしまうことがあります。何度もデバッグを繰り返していくと、手動でゾンビプロセスをKillするのは時間の無駄なのでプログラムをみました。
using System.Diagnostics;
using System.Linq;
namespace Art55.NetOfficeDemo20121204_004
{
class Program
{
static void Main()
{
Process[] killTargets = Process.GetProcessesByName("Excel");
killTargets
.ToList()
.ForEach(process => process.Kill());
}
}
}
あまりお勧めしませんが、私のPCに89個のExcelプロセスが動いていたので、致し方なくKillしまいた。
■ローカルコンピュータ内で、指定したプロセス名で動作しているプロセスを取得する。
Process[] killTargets = Process.GetProcessesByName("Excel");
■プロセスを終了する。
process.Kill()
そもそもこういう事態に陥らないようにコードで対処するべきです。べき論は言えますが、具体的にどうすれば良いのか的確に答えられません(涙)
Source and Project
--------------------------------------
本投稿は、CodePlexで公開されているNetOfficeを利用していませんが、紹介します。
NetOffice - MS Office in .NET
http://netoffice.codeplex.com/
NetOffice関連の記事は下記にまとめています。
【NetOffice】【Excel】NetOfficeのまとめ
http://pro.art55.jp/?eid=1304102
--------------------------------------
Get-Process -Name "Excel" | Kill