VisualStudio2008でExtensibilityIDTExtensibility2インターフェイスを使用してExcel用の共有アドインを開発しました。
機能的には非常に基本的です。ワークブックを開くと、開いているワークブックのリストに保存されます。閉じると、アドインは新しいテキストファイルを作成し、ファイルにXMLを書き込みます。次に、このファイルは別のプロセスによって読み取られ、XMLが逆シリアル化されます。 。
アドインは通常の操作で機能します。したがって、ユーザーがファイルを開いたり閉じたりすると、アドインは本来の動作を実行し、開いているワークブックでExcelを終了すると、本来の動作を実行します。
問題は、ユーザーが開いているワークブックでExcelを開いて、ログオフを実行する場合です。OnDisconnectionとOnBeginShutdownの2つのメソッドは、まったく呼び出されていないようです。
私はこれをテストするために2つのことをしました:
これらの2つのメソッドが呼び出されたときにログファイルに書き込むTextWriterTraceListenerを作成しました。Excelが正常に終了すると、それらはヒットし、情報がログファイルに記録されますが、ユーザーがログオフすると、ログファイルには何も記録されません。
File.CreateText(filename)を使用してこれらの両方のメソッド内で、空のファイルを作成しました。ユーザーが通常Excelを終了すると、これらのファイルが作成されますが、再度、ログオフによってExcelを閉じると、これらのファイルは作成されません。
誰かが私がこの問題を回避する方法について何かアイデアを持っていますか?ユーザーがマシンからログオフしているときにExcelが閉じられているときにキャプチャする必要があります...