【问题标题】:How to detect Windows shutdown vs. reboot in .NET/C# (or p/invoke)如何在 .NET/C#(或 p/invoke)中检测 Windows 关机与重启
【发布时间】: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 做出这样的承诺。它不可能保证重新启动实际上不会是关机。它不能保证,关键时刻到来时它不会运行。在这种情况下,当有人绊倒电源线时,您需要能够正常恢复。当它到位时,您真的不再关心机器是如何关闭的。无论如何都不应该。

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


【解决方案1】:

无论是关机还是重启,主命令都是一样的,只是参数不同。对于关机,它是 shutdown -s 对于重启,它是 shutdown -r

您可以尝试检查参数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多