我还有另一个要求,即应用程序应该被“关闭”,而不是“终止”。我需要将其内存缓冲区写入磁盘 - 终止它会导致数据丢失。
以下是我尝试过的方法:
foreach (Process proc in Process.GetProcesses())
{
if (proc.ProcessName.ToLower().StartsWith("myapp"))
{
if (proc.MainWindowHandle.ToInt32() != 0)
{
proc.CloseMainWindow();
proc.Close();
//proc.Kill(); <--- not good!
}
}
}
我添加了一个 if 条件句,发现当窗口最小化时,MainWindowHandle == 0。删除 if 不起作用。无论是 CloseMainWindow() 还是 Close() 都不起作用。只有 Kill() 起作用,但正如上面提到的 - 这不是我需要的。
任何想法都可以接受,包括使用神秘的 Win32 API 函数 :)