C# SystemEvents.PowerModeChanged 触发得太晚

Ism*_*moh 5 c# eventhandler

我想在计算机或笔记本电脑暂停之前捕获 PowerModeChanged 事件。

\n\n

我的代码片段如下:

\n\n
void SystemEvents_OnPowerChanged(object sender, PowerModeChangedEventArgs e)\n    {\n        string fileName = DateTime.Today.ToString("yyyy-MM-dd") + ".txt";   //Den aktuellen Tag ermittlen\n        string time = DateTime.Now.ToString("HH:mm:ss");                    //Die Zeit beim Eintreten des Events ermitteln           \n\n        switch (e.Mode)                                                     //Event abfangen\n        {\n            case PowerModes.Resume:                                         //Das Betriebssystem steht unmittelbar davor, aus dem Ruhezustand fortgesetzt zu werden, ...\n\n                LogToFile(fileName, " - " + time + " -> Pause.");           //... sodass die Pause beendet ist.\n                lblStatus.Text = "Arbeit, Arbeit! :)";\n                break;\n\n            case PowerModes.Suspend:                                        //Die Ausf\xc3\xbchrung des Betriebssystems wird unterbrochen, ...\n\n                LogToFile(fileName, "\\n" + time);                           //... sodass die Pause beginnt, also wird ein Zeilenumbruch hinzugef\xc3\xbcgt.\n                lblStatus.Text = "Luft filtern. :|";\n                break;\n        }\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n