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


    在.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}");
                }));
            }
    

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

    如下图

  • 相关阅读:
    洛谷5495:Dirichlet前缀和
    SP5971 LCMSUM
    洛谷1829:crash的数字表格
    洛谷3172:选数
    Codeforces 1295 D. Same GCDs
    洛谷3768:简单的数学题
    NTT学习笔记
    洛谷1169:棋盘制作(悬线法)
    洛谷2444:病毒
    后缀自动机
  • 原文地址:https://www.cnblogs.com/rbzz/p/15079117.html
Copyright © 2020-2023  润新知