如何打印电脑唤醒源?

How to print computer wake source?

我想从事件查看器 (Windows 10) 打印唤醒源。

有什么方法可以访问事件查看器->系统日志,搜索:

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

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

希望对您有所帮助。