3

我希望我的程序在计算机进入睡眠状态但无法这样做时写入控制台。我想我设置错了。这是我所拥有的...

编辑:新的 .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
    {

    }
}
4

2 回答 2

4

该事件由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.
    }
于 2013-05-25T06:48:40.030 回答
1

你已经找到了你要找的东西,但仍然......这段代码对我有用:

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);
}

}
于 2015-01-03T14:13:08.200 回答