系统挂起再恢复时如何获取事件
Posted
技术标签:
【中文标题】系统挂起再恢复时如何获取事件【英文标题】:How to get events when the system is suspended and then resuming 【发布时间】:2018-08-30 11:28:25 【问题描述】:我想知道当前系统状态是挂起还是恢复。我已经试过SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
private void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
log.DebugFormat("System Power event 0", e.Mode.ToString());
我想频繁地获取系统的状态。我也不想使用 WMI 查询。有没有其他方法可以检测系统状态。
【问题讨论】:
程序不会在挂起状态下运行,我不确定什么是“恢复”。 @RonBeyer 那你可以问问他是什么意思。如您所见,这是一个完全有效的问题。该事件在暂停计算机之前触发,一旦计算机再次被唤醒,就会触发恢复事件。 如果您想跟踪计算机暂停/活动的时间,只需保存上次触发事件的日期/时间,并与它比较新的事件日期。 【参考方案1】:然后,您可以使用 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;
希望这会有所帮助。
【讨论】:
以上是关于系统挂起再恢复时如何获取事件的主要内容,如果未能解决你的问题,请参考以下文章