4

ユーザーがパッケージを開始したとき、およびユーザーが Visual Studio を閉じたときの時間を保存する必要がある VS パッケージを作成しています。

問題は、Visual Studio の終了イベントを取得する方法がわからないことです。VSが閉じているかどうかを検出する方法について、誰かに情報を教えてもらえますか?

注: インターネットから検索すると、次のような問題が発生しました: VSPackage を介して ToolWindowPane または Visual Studio IDE のクローズ操作をキャンセルするにはどうすればよいですか? 、しかし、私が試してみると、この解決策は、パッケージウィンドウが閉じられたときに何かを検出して実行することであり、Visual Studio が閉じられたときに検出できません。

どんな助けでも本当に感謝しています。

ありがとう

4

1 に答える 1

7

それを明示してこの問題を解決するためだけに。これは、VS が閉じているかどうかを確認するコードのスナップショットです。

// Create 2 variables below
private DTE2 m_applicationObject = null;
DTEEvents m_packageDTEEvents = null;

次に、初期化でこれを追加します。

// Link the Event when VS CLOSING                
m_packageDTEEvents = ApplicationObject.Events.DTEEvents;
m_packageDTEEvents.OnBeginShutdown += new _dispDTEEvents_OnBeginShutdownEventHandler(HandleVisualStudioShutDown);

他に必要な 2 つの方法:

 public DTE2 ApplicationObject
 {
        get
        {
            if (m_applicationObject == null)
            {
                // Get an instance of the currently running Visual Studio IDE
                DTE dte = (DTE)GetService(typeof(DTE));
                m_applicationObject = dte as DTE2;
            }
            return m_applicationObject;
        }
  }

public void HandleVisualStudioShutDown()
{
    MessageBox.Show("Exiting Visual Studio. Bye");
}
于 2013-02-05T06:38:56.550 に答える