获取计算机的最后一次唤醒时间

我知道我可以使用Environment.TickCount来获取上次启动以来的时间
但是有可能最后一次计算从hibernate或睡眠中醒来?

(请不要使用WMI)

试试这个命令 – 使用Process将它关闭 – 你需要解析结果

cmd / k wevtutil qe系统/ q:“* [System [Provider] [@ Name ='Microsoft-Windows-Power-Troubleshooter']]]”/ rd:true / c:1 / f:text

如果你想要更多信息,请从这里解除…

根据这个页面,你将不得不听PBT_APMRESUMEAUTOMATIC (和PBT_APMRESUMESUSPEND,如果你想知道用户是否是唤醒的原因)。

我认为Microsoft.Win32.SystemEvents ( PowerModeChanged事件 )是看的地方,但没有进一步调查,可能会有一些问题 。

这个页面可能会让你开始感兴趣。