別プロセスの起動
1 2 3 4 5 6 7 |
private int pid;//プロセスIDを格納 private void プロセススタート_Click(object sender, EventArgs e) { //メモ帳を起動する System.Diagnostics.Process p = System.Diagnostics.Process.Start("notepad.exe");//notepadを起動 pid = p.Id;//複数ならList<p>とかにする。 } |
別プロセスの強制終了
起動プロセス情報が分かれば終了は簡単です。
p.idが分かる場合
1 2 3 4 5 6 7 8 9 10 11 12 13 |
private void プロセスストップ_Click(object sender, EventArgs e) { System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcesses();//実行されている全プロセス foreach (System.Diagnostics.Process p in ps) { if (p.Id == pid && pid > 0)// List<p> .contains(p) -> killするとか { p.Kill();//プロセスを強制的に終了させる pid = 0;//ちなみに0はkillできません。 } } } |
p.idが分からない場合
1 2 3 4 5 6 |
System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("notepad"); foreach (System.Diagnostics.Process p in ps) { p.Kill();//プロセスを強制的に終了させる Console.WriteLine("kill"); } |
“notepad.exe”->exe無しで”notepad”で探す必要があります。