2013年1月29日火曜日

Windowsのイベントログから起動・終了時間を取得する

System.Diagnostics.EventLog[] logs = System.Diagnostics.EventLog.GetEventLogs(); 
StringBuilder sb = new StringBuilder(); 
foreach (System.Diagnostics.EventLog log in logs) 
{ 
  if (log.Log == "System") 
  { 
    int cnt = 0; 
    for (int i = log.Entries.Count -1 ; i > 0 ; i--) 
    { 
      if (log.Entries[i].Source == "Microsoft-Windows-Kernel-General") 
      { 
        if (log.Entries[i].InstanceId == 12) 
        { 
          sb.AppendLine(log.Entries[i].TimeGenerated.ToString("[yyyy/MM/dd HH:mm:ss]") + "起動"); 
          cnt++; 
        } 
        else if (log.Entries[i].InstanceId == 13) 
        { 
          sb.AppendLine(log.Entries[i].TimeGenerated.ToString("[yyyy/MM/dd HH:mm:ss]") + "終了"); 
          cnt++; 
        } 
      } 
      if (cnt > 10) 
      { 
        break; 
      } 
    } 
  } 
} 
return sb.ToString();

0 件のコメント:

コメントを投稿