【问题标题】:How to detect if windows is going to hibernate or suspend?如何检测 Windows 是要休眠还是挂起?
【发布时间】:2011-05-16 00:23:57
【问题描述】:

我正在使用

SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(
    SystemEvents_PowerModeChanged
);

告知 Windows 何时挂起。但是我怎么知道它是进入休眠还是挂起?

是否有 .Net 或 PInvoke 方法来执行此操作?

【问题讨论】:

    标签: c# winapi


    【解决方案1】:

    你无法区分休眠和挂起。

    详细讨论here

    外卖信息是,您的问题预设了错误的二分法:它可以是休眠、挂起或混合睡眠......当混合睡眠从挂起转换到休眠时,用户代码甚至没有运行(实际上可能有没有代码运行,转换发生在断电的情况下)。

    所以当混合睡眠的决定发生时,系统不知道它是从挂起还是从休眠中恢复,它不能告诉你它不知道什么。

    【讨论】:

      【解决方案2】:

      根据MSDN,e.Mode 的值(您的事件处理程序应该有第二个参数PowerChangedEventArgs e)将是“Resume”、“StatusChange”或“Suspend”之一的枚举。但是,它似乎没有提供比这更详细的信息,因此人们假设如果状态为 Suspend,则 PC 要么处于睡眠状态,要么处于休眠状态。

      HTH,

      本杰明

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 2014-07-04
        相关资源
        最近更新 更多