如何在.NET / C#(或p / invoke)中检测Windows关闭与重启

时间:2012-01-19 18:16:36

标签: .net c#-4.0 windows-7

我有一个在Windows 7 Embedded上运行的应用程序,只要系统关闭或重新启动,它就需要与外部资源进行通信。我的逻辑是不同的,取决于系统是否永久关闭而不是作为重启的一部分关闭。

从我看到的,有一些评论表明不可能准确地确定关机与重启,但我需要更多的证据(或者MSDN doc会很好)。

这篇文章给出了区分两者的一些解决方案,但大部分都不可靠:Tell reboot from shutdown on Windows Server 2008

在这篇文章中:Is there a way in c# to detect a Windows shutdown/logoff and cancel that action (after asking the user) ...其中一位评论者表示根本无法检测重启和关机之间的区别。

有没有人对此问题有更权威的答案?

1 个答案:

答案 0 :(得分:0)

对于shutdown和reboot,main命令与参数中的不同只是相同。对于关机,它是 shutdown -s 重启时, shutdown -r

您可以尝试检查参数