C#SystemEvents.PowerModeChanged触发得太晚了

时间:2015-10-03 15:33:56

标签: c# eventhandler

我希望在计算机或笔记本暂停之前捕获PowerModeChanged事件

我的代码段如下:

void SystemEvents_OnPowerChanged(object sender, PowerModeChangedEventArgs e)
    {
        string fileName = DateTime.Today.ToString("yyyy-MM-dd") + ".txt";   //Den aktuellen Tag ermittlen
        string time = DateTime.Now.ToString("HH:mm:ss");                    //Die Zeit beim Eintreten des Events ermitteln           

        switch (e.Mode)                                                     //Event abfangen
        {
            case PowerModes.Resume:                                         //Das Betriebssystem steht unmittelbar davor, aus dem Ruhezustand fortgesetzt zu werden, ...

                LogToFile(fileName, " - " + time + " -> Pause.");           //... sodass die Pause beendet ist.
                lblStatus.Text = "Arbeit, Arbeit! :)";
                break;

            case PowerModes.Suspend:                                        //Die Ausführung des Betriebssystems wird unterbrochen, ...

                LogToFile(fileName, "\n" + time);                           //... sodass die Pause beginnt, also wird ein Zeilenumbruch hinzugefügt.
                lblStatus.Text = "Luft filtern. :|";
                break;
        }
    }

如果待机已完成,则会触发两次事件。第一个e.Mode等于Suspend,第二次e.Mode等于Resume。

如何暂停待机模式并将字符串保存到文件中? 为什么在Standby之后事件被触发了两次,虽然它应该在之前和之后触发一次?

0 个答案:

没有答案