可以使用System.Diagnostics命名空间中的EventLog类,结合使用EventLogEntryType枚举来过滤事件类型,获取Windows系统日志中的用户登录和登出记录。
获取用户登录和登出记录示例:
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
// 指定要访问的日志名称(例如:Security)
string logName = "Security";
// 创建EventLog对象
EventLog eventLog = new EventLog(logName);
// 遍历日志中的事件
foreach (EventLogEntry entry in eventLog.Entries)
{
// 过滤事件类型为登录和登出
if (entry.EntryType == EventLogEntryType.SuccessAudit || entry.EntryType == EventLogEntryType.FailureAudit)
{
Console.WriteLine($"Event ID: {entry.EventID}");
Console.WriteLine($"Source: {entry.Source}");
Console.WriteLine($"Message: {entry.Message}");
Console.WriteLine();
}
}
}
}
需要以管理员身份运行此代码,以便访问系统日志。
可以根据需要更改日志名称(logName)来访问其他日志,如Application、System等。