【发布时间】:2013-04-19 19:19:24
【问题描述】:
假设我启动一个进程来运行像 7z.exe (7-Zip Archiver) 这样的控制台应用程序。我正在创建没有窗口的进程,并且正在重定向标准输出。
我想知道如何停止“Process.Kill”以外的进程,因为这会导致留下不完整/损坏的存档文件。
如果我在从普通命令控制台窗口运行 7z.exe 时按 CTRL-BREAK,它会正常关闭并删除不完整的文件。
如果 cmd.exe 可以启动进程并向其发送 ctrl-break 信号,那么我自己的应用程序如何启动进程并向其发送 ctrl-break(或等效)信号,以便进程正常关闭?
【问题讨论】:
-
我之前读过...你需要一个中间人进程来让 GenerateConsoleCtrlEvent 工作,因为它实际上只适用于调用进程,尽管它似乎接受任意进程组 id .该链接问题中的答案解释得更好一些,所以我会尝试一下。
标签: c# .net console-application interrupt break