在系统挂起然后恢复时如何获取事件

时间:2018-08-30 11:28:25

标签: c# .net power-management

我想知道当前系统状态是暂停还是恢复。我已经尝试过SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

private void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
  log.DebugFormat("System Power event {0}", e.Mode.ToString());
}
我想经常获取系统状态。我也不想使用WMI查询。还有其他方法可以检测系统状态。

1 个答案:

答案 0 :(得分:0)

然后,您可以使用SystemEvents.PowerModeChanged事件来了解系统是否正在挂起(当您休眠或休眠时,将发生挂起)。

    SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(OnPowerModeChanged);


    private static void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e)
    {
        switch (e.Mode)
        {
            case PowerModes.Resume:
                MessageBox.Show("PowerMode: OS is resuming from suspended state");
                break;

            case PowerModes.Suspend:
                MessageBox.Show("PowerMode: OS is about to be suspended");
                break;
        }
    }

希望这会有所帮助。