【发布时间】:2012-02-14 09:57:42
【问题描述】:
我有一个在 Windows 7 Embedded 上运行的应用程序,它需要在系统关闭或重新启动时与外部资源通信。我的逻辑会有所不同,具体取决于系统是永久关闭还是作为重启的一部分关闭。
据我所知,有一些 cmets 表明无法准确确定关机与重启,但我需要更多证据(或者 MSDN 文档会很好)。
这篇文章给出了一个有点骇人听闻的解决方案来区分这两者,但在大多数情况下并不可靠: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) ...其中一位评论者建议根本无法检测到重新启动和关机之间的区别。
有人对这个问题有更权威的答案吗?
【问题讨论】:
-
这更像是一个澄清问题@Cody Gray。我特别想确定关机和重启之间的区别。您引用的帖子谈到了关机与注销。
-
没有办法让 Windows 做出这样的承诺。它不可能保证重新启动实际上不会是关机。它不能保证,关键时刻到来时它不会运行。在这种情况下,当有人绊倒电源线时,您需要能够正常恢复。当它到位时,您真的不再关心机器是如何关闭的。无论如何都不应该。