C#Win32睡眠检测PowerModeChanged

时间:2013-05-25 06:42:30

标签: c# win32-process

我一直在网上搜索大约一个小时,并在stackoverflow和其他网站上尝试了所有不同的策略,但由于某种原因我无法让它工作。我希望我的程序在计算机上写入计算机,但它无法这样做。我想我错了。这就是我的......

编辑:新的.cs文件

using LightFX;
using System;
using System.Threading;
using System.Text;
using Microsoft.Win32;
using ConsoleApplication3;

namespace SampleApp5
{
    class Program
    {
        static void Main()
        {

        }

        SystemEvents.PowerModeChanged += PowerModeChanged;
    }
    class PowerModeChanged
    {

    }
}

2 个答案:

答案 0 :(得分:3)

该事件由SystemEvents类引发(它是一个静态事件)。你只需要绑定它:

SystemEvents.PowerModeChanged += OnPowerModeChanged;

您需要在main方法中的某个位置执行此操作。

当然,删除自定义委托,因为它已经由框架定义。你不需要这一行:

  

公共静态事件PowerModeChangedEventHandler   PowerModeChanged;

更新:

    static void Main()
    {
       SystemEvents.PowerModeChanged += OnPowerModeChanged;
       Console.ReadLine(); //just wait, don't exit immediately.
    }

    private static void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e) 
    {
        //Handle the event here.
    }

答案 1 :(得分:1)

你有mabye找到你要找的东西,但仍然...... 这段代码适合我:

using System;
using Microsoft.Win32;


class Powerstatus
{
static void Main(string[] args)
{
    SystemEvents.PowerModeChanged +=
        new PowerModeChangedEventHandler(SystemEvents_PowerModeChanged);
    Console.ReadLine();
}

static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
    Console.WriteLine(e.Mode);
}

}