[C#] プロセス名を指定して実行中のプロセスを強制終了させる(例:エクセル)

Pocket

ここでは、C# において実行中のプロセスをプロセス名を指定して強制終了させるサンプルコードを掲載しています。

スポンサーリンク

実行中のエクセル2013を停止させる

次のソースコードは、実行中のエクセルを停止させるサンプルになります。保存前のエクセルファイルを開いている人は注意してください。詳細は、サンプル内のコメントを参照ください。

//using System.Diagnostics;

// プロセス名を指定してProcessオブジェクトを取得する
// excel.exe のように拡張子をつけるのはNGで、プロセスを取得できない
Process[] procs = Process.GetProcessesByName(@"excel");
foreach (var proc in procs)
{
    // エクセルを終了させる
    proc.Kill();
}

 

エクセル2013を強制終了した結果

エクセル2013で試した結果になります。エクセルを3つ起動していましたが、タスクマネージャで確認するとエクセルのプロセス自体は1つしかありませんでした。3つのプロセスオブジェクトに対して、それぞれ kill を発行するのではなく、1回のkill 通知のみとなりました。

タスクマネージャの内容

どうやら、見た目だけは別プロセスっぽく動作しているだけで、エクセル自体は1プロセスだけのようです。

詳細は不明です。どなたか御存じであれば教えてもらえるとありがたいです。

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *