如何检测Windows 8何时进入睡眠或恢复状态

时间:2013-08-15 16:00:01

标签: c# windows-8 windows-runtime lifecycle

我有一个应用程序可以保持与服务器的连接,但是如果用户走开并且平板电脑进入休眠状态,我想优雅地处理断开连接,我还想在用户登录时重新登录唤醒平板电脑。

我已尝试将以下代码放入我的连接类中,但它们永远不会被解雇。

Application.Current.Suspending += this.OnAppSuspending;
Application.Current.Resuming += this.OnAppResuming;;

1 个答案:

答案 0 :(得分:5)

对于桌面应用,您可以使用SystemEvents.PowerModeChanged事件来了解Windows是否进入睡眠状态。我不知道这是否适用于平板电脑,但你可以尝试一下......

来自MSDN:

•恢复操作系统即将从暂停状态恢复。

•StatusChange操作系统引发了电源模式状态通知事件。这可能表示电池电量不足或充电,交流电源与电池之间的转换,或系统电源状态的其他变化。

•暂停操作系统即将暂停。

SystemEvents.PowerModeChanged += OnPowerChange;

private void OnPowerChange(object s, PowerModeChangedEventArgs e) 
{
    switch ( e.Mode ) 
    {
        case PowerModes.Resume: 
        break;
        case PowerModes.Suspend:
        break;
    }
}