我可以向 Windows 中正在运行的进程发送 CTRL-BREAK 和/或 CTRL-C 吗?

我可以向 Windows 中正在运行的进程发送 CTRL-BREAK 和/或 CTRL-C 吗?

我有一个 Windows 控制台应用程序,它将运行很长一段时间。这是内部开发的,测试表明,随着时间的推移,内存使用量会增加,并随之产生其他不良影响。开发人员无法在发布前及时纠正所有问题,因此我正在寻找一种方法来定期结束和重新启动该进程。我已经有一个 Windows 计划任务,它可以运行批处理文件,检查进程是否正在运行,如果没有,则启动它。

现在我需要一些可以正常停止它的东西。该应用程序已将 CTRL-BREAK 事件用作受控关闭的请求。我想向它发送 CTRL-BREAK,如果一段时间后它仍未结束,那么我可以使用 taskkill 强制结束它。taskkill 似乎向它提供了 CTRL-CLOSE 事件。有没有办法从命令行向进程提供 CTRL-BREAK?

答案1

您可以使用这个小实用程序发送控制中断。

http://www.latenighthacking.com/projects/2003/sendsignal/

笔记start如果您从批处理文件运行它,请确保使用。

答案2

我不知道中断事件是否被视为应用程序的正常关闭。

也就是说,在 sysinternals 下搜索 ps 实用程序,这是 Microsoft 提供的免费程序。有一个 pskill 命令可用于终止应用程序,我相信还有一个 pslist 可用于获取进程 ID。解析它并向其发送终止信号,看看是否适合您。

相关内容