如何使用VSPackage检测Visual Studio IDE是否正在关闭
本文关键字:是否 IDE Studio 何使用 VSPackage 检测 Visual | 更新日期: 2023-09-27 17:57:30
我正在编写一个VS包,需要在其中存储用户启动包和关闭Visual Studio的时间。
问题是,我不知道如何获得Visual Studio的关闭事件。有人能给我一些关于如何检测VS是否关闭的信息吗?
注意:当我在互联网上搜索时,我遇到了以下与我类似的问题:如何通过VSPackage取消ToolWindowPane或Visual Studio IDE的关闭操作?,但当我尝试它时,这个解决方案是在Package窗口关闭时检测并执行某些操作,而不能在Visual Studio关闭时检测。
非常感谢您的帮助。
感谢
只是为了明确并解决这个问题。这是检查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);
您需要的另外两种方法:
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");
}