FileSystemWatcher を使用して、ドキュメント管理システムから開かれたドキュメントを監視します。ユーザーがドキュメントを保存する場合、システムでドキュメントを更新するかどうかを尋ねます。
Excel 2007 の XLS ファイルに問題があり (問題が 2003 に存在しないことは確認されていませんが、2007 で互換モードで開くファイルのみのようです)、ファイルを開くとすぐに Changed イベントが発生します。何も変更されていないか、ユーザーが閉じるときに保存しないことを選択した場合でも、ファイルを閉じるともう一度。XLSX ファイルを開くとき、この同じ動作は存在しません。
動作を確認するためのテスト アプリを作成しました ( http://www.just2guys.net/SOFiles/FSWExcel.zip )。アプリには、NotifyFilter の種類ごとに 1 つの FileSystemWatcher があるため、Changed イベントが 発生した理由が明確になります。
ドキュメントが実際にユーザーによって何らかの方法で保存されたときにのみ、ユーザーにプロンプトを表示する方法を考えることができますか? Process.Start が呼び出された後にファイルの監視を開始できます。これにより、ドキュメントを開くときにメッセージをスキップできますが、何も変更されていない場合でも、ドキュメントを閉じるときにメッセージが表示されます。