How to Detect if Visual Studio IDE is closing using VSPackage?

半腔热情 提交于 2020-01-01 11:47:11

问题


I'm writing a VS Package where I need to store the time when the user start my package, and when the user close the Visual Studio.

The problem is, I don't know how to get the closing event for the Visual Studio. Can anyone give me any information about how to detect if the VS is closing?

Note: When I search from the internet, I got the following similar problem to mine: How do you cancel a ToolWindowPane or Visual Studio IDE close operation via a VSPackage?, but when I try it, this solution is to detect and do something when the Package window is closed, and cannot detecting when the Visual Studio is closed.

Any help is really appreciated.

Thanks


回答1:


Just to make it explicit and close this problem. This is the snapshot of code to check if VS is closing:

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

Then in Initialize add this:

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

Two other methods that you need:

 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;
        }
  }

And

public void HandleVisualStudioShutDown()
{
    MessageBox.Show("Exiting Visual Studio. Bye");
}


来源:https://stackoverflow.com/questions/14679217/how-to-detect-if-visual-studio-ide-is-closing-using-vspackage

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!