首页 > Windows开发 > 详细

C#监测系统事件,睡眠状态

时间:2021-07-30 16:11:47      阅读:20      评论:0      收藏:0      [点我收藏+]

在.net中有提供一个SystemEvents的静态类,该类有多个事件可以监测到系统事件的变化

微软官方文档 

https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.win32.systemevents?view=netframework-4.5.2&f1url=%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(Microsoft.Win32.SystemEvents);k(TargetFrameworkMoniker-.NETFramework,Version%253Dv4.5.2);k(DevLang-csharp)%26rd%3Dtrue

但是PowerModeChanged却始终不能监测到系统睡眠状态,也不知道怎么回事,所以我决定另辟悉径

使用监测系统事件的方式

 //获取系统事件对象
            var log = new EventLog("System");//EventLog.GetEventLogs()[9];
            //绑定系统事件通知
            log.EntryWritten += Form1_EntryWritten;
            //接收通知
            log.EnableRaisingEvents = true;

  

  private void Form1_EntryWritten(object sender, EntryWrittenEventArgs e)
        {
            this.Invoke(new Action(() =>
            {
                //102 睡眠恢复 158系统退出待机状态
                this.listBox1.Items.Add($"{e.Entry.Source} - {e.Entry.CategoryNumber}");
            }));
        }

  这个主要是监控系统日志来实现的,算是另一种监测的方法

如下图

技术分享图片

 

C#监测系统事件,睡眠状态

原文:https://www.cnblogs.com/rbzz/p/15079117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!