这个问题已经有了答案:
Check the reason the computer resumed from hibernation
2答
我想从事件查看器(Windows10)打印唤醒源。
有没有方法可以访问事件查看器->系统日志,搜索:
Source: Microsoft-Windows-Power-Troubleshooter最新事件,分析事件消息并打印唤醒源?
以下是事件日志的示例:

Index              : 2841
EntryType          : Information
InstanceId         : 1
Message            : The system has resumed from sleep.

                     Sleep Time: 2010-10-01T19:19:37.239789600Z
                     Wake Time: 2010-10-01T21:28:48.921200800Z

                     Wake Source: 4HID Keyboard Device
Category           : (0)
CategoryNumber     : 0
Source             : Microsoft-Windows-Power-Troubleshooter

最佳答案

对于任何关心解决方案的人-我成功地做到了以下几点:

        /// <summary>
        /// Get Last Wake Event Entry
        /// </summary>
        /// <param name="wakeMessage"></param>
        /// <returns></returns>
        private static EventLogEntry GetLastWakeEventEntry(out string[] wakeMessage)
        {
            wakeMessage = null;
            EventLogEntry wakeEntry = null;
            //Open system event log of current user
            var eventLog = new EventLog("System", ".");
            //Get all event log entries
            var entries = eventLog.Entries;
            //Start from the latest event message until finding the wake event log
            for (int i = entries.Count - 1; i >= 0; i--)
            {
                if (entries[i].Source == "Microsoft-Windows-Power-Troubleshooter" && entries[i].InstanceId == 1)
                {
                    wakeEntry = entries[i];
                    wakeMessage = Regex.Split(entries[i].Message, @"([\r\n])");
                    break;
                }
            }
            return wakeEntry;
        }

给定最后一个唤醒条目和唤醒消息,可以解析唤醒源(通常是最后一个消息行)的消息,并显示给定唤醒条目的相关信息。
希望有帮助。

关于c# - 如何打印计算机唤醒源? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38519838/

10-13 08:42