システム側がダイアログ出すアプリケーションエラーであればシステムのイベントログに記録されるので、System.Diagnostics.EventLogでEntryWrittenイベントで検出すればいいっぽい><(アプリケーションエラーの取得だけなら管理者権限不要っぽい><)
https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.eventlog.entrywritten?view=dotnet-plat-ext-6.0
これ参考にしてイベントでe.Entry.ReplacementStringsの中身見るだけで出来た><