我在 Windows Server 2008 上运行控制台应用程序。我希望它始终运行,因此我已将其安排在通过任务计划程序启动时运行。我设置了任务,因此它不需要登录。
现在如何停止它?任务计划程序在所有正在运行的任务下有一个“结束任务”按钮。但这会突然停止任务,我不想这样做。我已经对其进行了编程,以便 CTRL-C 将发出停止请求,并且它会在完成正在执行的操作后停止。(对于任何 .NET 开发人员,我使用 Console.CancelKeyPress 事件。)
当我的应用程序从任务计划程序运行时,有什么方法可以触发取消按键事件(即 CTRL-C)?
(我知道一个答案是使其成为 Windows 服务,我最终会这样做,但我需要一个短期解决方案。)
答案1
在此期间,你可以使用斯尔瓦尼实用程序。它非常快速且易于操作。我发现当服务停止时,srvany 会向控制台应用程序发送 ctrl-c。
使用 srvany 和 sc 创建服务:
sc 创建 myservice binpath=“c:\path to\srvany.exe”
打开 regedit 并在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 中找到您的服务
右键单击并添加一个名为“Parameters”的键
创建一个名为 Application 的字符串值,并将其设置为控制台应用程序的路径。
就是这样。
我不知道 srvany 是否适用于 2008(我的谷歌搜索表明它可以)。我已经找到了,但我知道它在 2003 上运行良好。你可以从Windows 2003 资源工具包。
您需要做的就是制定计划任务来启动和停止服务。