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

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

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

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

对于桌面应用程序,您可以使用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; } }