通过任务计划程序正常终止控制台应用程序运行

通过任务计划程序正常终止控制台应用程序运行

我在 Windows Server 2008 上运行控制台应用程序。我希望它始终运行,因此我已将其安排在通过任务计划程序启动时运行。我设置了任务,因此它不需要登录。

现在如何停止它?任务计划程序在所有正在运行的任务下有一个“结束任务”按钮。但这会突然停止任务,我不想这样做。我已经对其进行了编程,以便 CTRL-C 将发出停止请求,并且它会在完成正在执行的操作后停止。(对于任何 .NET 开发人员,我使用 Console.CancelKeyPress 事件。)

当我的应用程序从任务计划程序运行时,有什么方法可以触发取消按键事件(即 CTRL-C)?

(我知道一个答案是使其成为 Windows 服务,我最终会这样做,但我需要一个短期解决方案。)

答案1

在此期间,你可以使用斯尔瓦尼实用程序。它非常快速且易于操作。我发现当服务停止时,srvany 会向控制台应用程序发送 ctrl-c。

  1. 使用 srvany 和 sc 创建服务:

    sc 创建 myservice binpath=“c:\path to\srvany.exe”

  2. 打开 regedit 并在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 中找到您的服务

  3. 右键单击并添加一个名为“Parameters”的键

  4. 创建一个名为 Application 的字符串值,并将其设置为控制台应用程序的路径。

就是这样。

我不知道 srvany 是否适用于 2008(我的谷歌搜索表明它可以)。我已经找到了,但我知道它在 2003 上运行良好。你可以从Windows 2003 资源工具包

您需要做的就是制定计划任务来启动和停止服务。

相关内容