当进程'窗口关闭,而不是在进程退出时

本文关键字:进程 退出 窗口 | 更新日期: 2023-09-27 18:07:47

我用:

var process = Process.Start("somestuff.bat");

然而,当某些操作完成时,它不会杀死进程,只是关闭窗口,所以很自然地:

process.Exited += ...

永远不会开火。

那么,是否有一种方法以某种方式获得窗口句柄,或者任何方便的process并在该窗口关闭时触发方法?

当进程'窗口关闭,而不是在进程退出时

Use this make closing event..

XML关闭= " Window_Closing "

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgse)
{
    KillProcess();
}

您需要在进程上设置一些内容以使其触发事件

var process = Process.Start("somestuff.bat");
process.EnableRaisingEvents = true;
process.Exited += .. // note here, this runs in the process thread not the UI

exit then fires

试试这个可能会解决你的问题

foreach (var process in Process.GetProcessesByName(".exe"))
{
    process.Kill();
}