に呼ばれるが、私は、Visual Studioの拡張IDTExtensibility2インターフェイスを使用してExcelの共有アドインを開発してきた2008年エクセルアドイン - OnDisconnection/OnBeginShutdownないログオフ
それは、機能的にはかなり基本的なのです。ワークブックを開くと、開いているワークブックのリストに保存されます。閉じられると、新しいテキストファイルが作成され、XMLがファイルに書き出されます。その後、このファイルは別のプロセスによって読み込まれ、XMLが逆シリアル化されます。
アドインは通常の操作で動作します。そのため、ユーザーがファイルを開いて閉じると、アドインが必要な処理を行います。開いているワークブックでExcelを終了したら、それは必要な処理を行います。
問題は、ユーザーが開いているワークブックでExcelを開いていて、ログオフしているときです。 2つの方法:OnDisconnectionとOnBeginShutdownはまったく呼び出されないようです。
私はこれをテストするには、2つの事でした:私はこれらの2つの方法が呼び出されたときに、ログファイルに書いては、TextWriterTraceListenerを作成
を。 Excelが正常に終了すると、ヒットし、情報はログファイルに記録されますが、ユーザーがログオフするとログファイルには何も記録されません。
File.CreateText(filename)を使用したこれらの方法の両方で、私は空のファイルを作成しました。ユーザーがExcelを正常に終了すると、これらのファイルが作成されますが、もう一度、Excelがログオフによって閉じられると、これらのファイルは作成されません。
この問題を回避する方法はありますか?ユーザーがマシンからログオフしているときにExcelが終了しているときにキャプチャする必要があります。
私はすでに方法についてラウンドで、WorkbookBeforeCloseを使用していますが、ときに私は、TextWriterTraceListenerにログインなるようにテストとして、私はそれを変更いわゆる。 Excelが正常に終了すると、デバッグメッセージがログに書き込まれますが、Excelがユーザーログオフで閉じられると、デバッグメッセージはログファイルに書き込まれません。 – kzhen
また、OnDisconnectionおよびOnBeginShutdownがなぜオフになっているのか〜に電話した... – kzhen