少なくとも最初のサンプル コードまでは、アプリケーションで Microsoft.Management.Infrastructure が動作しています。
CimSession.Create(null)
.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_OperatingSystem")
.FirstOrDefault().CimInstanceProperties["Version"].Value.ToString();
必要なのは、MMI を使用して、ローカル マシン上のアプリケーションが特定のファイルをロックしているかどうかを判断することです (この質問を参照して、MMI 以外のアプローチが機能しない理由を確認してください)。
MMI、WQL、CIM、およびその他の TLA の群れに関するドキュメントのページを次々と読んでいますが、その方法がわかりません。
1) 「ファイル X が開いている/ロックされているプロセスはどれか」という質問をしますか?
また
2)開いている/ロックされているすべてのファイルを列挙して、ファイルXを探すことができます
重要 - コードでこれを行う必要があります (Process Explorer の実行はうまくいきません)。