システム側がダイアログ出すアプリケーションエラーであればシステムのイベントログに記録されるので、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の中身見るだけで出来た><
関連な蛇足で(?)プロセス指定でウィンドウをアクティブに出来るMicrosoft.VisualBasic.Interaction.AppActivateとかいう便利なものを発見したんだけどソース見てびっくりしたけど
https://github.com/microsoft/referencesource/blob/5697c29004a34d80acdaf5742d7e699022c64ecd/Microsoft.VisualBasic/runtime/msvbalib/Interaction.vb#L140
VB.NETのMicrosoft.VisualBasicのライブラリのソースコードってちゃんとVB.NETで書かれてたのか!><;(C# で書かれてるのかとおもってた><;)
通常のモーダルダイアログを出してる時との識別は、(そのプロセスの)ForegroundなウィンドウをGetParent()して親ウィンドウがあれば普通のモーダルダイアログで、親ウィンドウが無いのであればアプリケーションエラーダイアログって判断してすればよほど変な事して無い限り大丈夫っぽさ><
高堅牢タフネススマートフォン | CAT S61 https://www.kcs.ne.jp/lp/cat-s61/
堅牢な端末が欲しいならこれ買って格安sim契約したほうがいい気がしてきた
これ、ひとつの「アプリが落ちてるか判定するのをちょちょいと出来るライブラリ!><」として作ったら便利かも?><
https://mstdn.nere9.help/@orange_in_space/107409948146982991
2020-07-06 「京浜東北線のワンマン運転化」を、JR東日本が検討する理由 | News&Analysis | ダイヤモンド・オンライン https://diamond.jp/articles/-/242039?page=3