在c#中,如何在系统进入睡眠状态之前完成一组任务
本文关键字:任务 一组 系统 状态 | 更新日期: 2023-09-27 18:25:08
我想在系统进入睡眠状态之前保存一些用户的工作,所以在进行了一些研究之后,我了解了SystemEvents.PowerModeChanged,但由于此事件,我的程序没有完成保存用户的工作。在此之前,只有系统进入睡眠。那么我应该如何处理这种情况呢?
ManagementEventWatcher eventWatcher = new System.Management.ManagementEventWatcher();
WqlEventQuery query = new WqlEventQuery("Win32_PowerManagementEvent"); //catch power change events
eventWatcher.Query = query;
eventWatcher.EventArrived += new System.Management.EventArrivedEventHandler(eventWatcher_EventArrived); // rgister the event handler
eventWatcher.Start(); // start the event watcher
经办人:
void eventWatcher_EventArrived(object sender, System.Management.EventArrivedEventArgs e)
{
int eventType = Convert.ToInt32(e.NewEvent.Properties["EventType"].Value);
switch (eventType)
{
case 4://sleep
break;
case 7://resume
break;
}
}
注意:当程序退出时,不要忘记停止观察程序。
if(eventWatcher != null)
eventWatcher.Stop();
更多详细信息。。。
http://cmehmet6parmak.wordpress.com/2011/06/14/catch-computer-sleep-event-c-windows-7/