potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

C# 9 チェックディスクのイベントログを選択する

System.Diagnostics.EventLogを用いて、システムのイベントログからチェックディスクのログを選択するサンプルコードです。

チェックディスクのインスタンスIDは公式のドキュメントが見つからなかったので、実際に列挙して該当したものを自前で定義しています。

Program.cs

using System;
using System.Diagnostics;
using System.Linq;

const int CheckDiskInstanceID = 0x400003e9;

var log = new EventLog("Application", ".", "Wininit");
var entries = log.Entries.Cast<EventLogEntry>()
    .Where(entry => entry.InstanceId == CheckDiskInstanceID);

foreach (var entry in entries)
{
    Console.WriteLine(entry.Message);
}

.csproj

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0-windows</TargetFramework>
        <UseWindowsForms>true</UseWindowsForms>
    </PropertyGroup>
</Project>