特定の CloseReason を定義するプロセスを閉じる必要があります。これは、CloseReason が WindowsShutDown である場合は閉じるフォームでチェックを終了する必要があるプロセスが原因であり、それ以外の場合はプログラムを閉じます。
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason != CloseReason.WindowsShutDown)
{
e.Cancel = true;
Hide();
}
}
しかし、別のプログラムから私がこれを行う場合:
List<Process> pp = Process.GetProcessesByName("myProgram").ToList();
foreach (var p in pp)
{
p.CloseMainWindow();
p.WaitForExit();
}
しかし、プログラムは閉じられていません....
これどうやってするの?