2010-04-28 59 views
1

是否有可能从Windows服务中断计算机关机?从Windows服务中止计算机关机

+5

不错!让我在我烦恼的东西程序大名单中添加另一个条目。 – Will 2010-04-28 12:46:17

+0

重复:http://stackoverflow.com/questions/589986/how-to-abort-shutdown-in-windows-xpvista-programatically – Oliver 2010-04-28 12:46:37

+0

这不是重复你张贴的问题。这个问题谈到了桌面应用程序获取关于允许中止的关机的窗口消息。服务不会获得该窗口消息,因为它没有窗口。 – 2010-04-28 13:35:11

回答

0

是的。你可以调用shutdown/A使用的Process.Start

static void Main(string[] args) 
{ 
    Process p = new Process(); 
    p.StartInfo.FileName = "shutdown"; 
    p.StartInfo.Arguments = "/r"; 
    p.Start(); 
    Thread.Sleep(5000); 
    p.StartInfo.Arguments = "/a"; 
    p.Start(); 

} 

上面的代码告诉计算机关机和重启,等待5秒钟,然后终止它。

+1

'shutdown/a'只适用于有超时期限的关机。如果用户点击开始>>关机,shutdown/a将不会中止它。 – 2010-04-28 13:29:20

+0

什么都可以中止吗?即使这样做,无论如何,有可能有一半的流程已经结束,在这个阶段放弃它可能不是一个好主意。 – NibblyPig 2010-04-28 13:50:00

0
AbortSystemShutdown 

我已经在类似的问题,增加了一个样本,以我的答案在这里
How cancel shutdown from a windows service C#

+1

这不会出于同样的原因SLC的答案将无法正常工作 - AbortSystemShutdown只有在被称为“关机超时期间”[MSDN quote]时才会成功。当用户启动关机时,没有超时时间。 – 2010-04-28 13:39:24

+0

我错过了,谢谢。 – 2010-04-28 13:55:55

相关问题