c# – 如何使用VSPackage检测Visual Studio IDE是否正在关闭?
作者:互联网
我正在编写一个VS包,我需要存储用户启动包的时间,以及用户关闭Visual Studio时的时间.
问题是,我不知道如何获得Visual Studio的结束事件.任何人都可以给我任何关于如何检测VS是否正在关闭的信息?
注意:当我从互联网上搜索时,我遇到了类似的问题:How do you cancel a ToolWindowPane or Visual Studio IDE close operation via a VSPackage?,但是当我尝试它时,此解决方案是在关闭包窗口时检测并执行某些操作,并且无法检测Visual Studio何时关闭.
任何帮助都非常感谢.
谢谢
解决方法:
只是为了明确并解决这个问题.
这是检查VS是否正在关闭的代码快照:
// Create 2 variables below
private DTE2 m_applicationObject = null;
DTEEvents m_packageDTEEvents = null;
然后在Initialize中添加:
// 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");
}
标签:c,visual-studio-2012,vspackage 来源: https://codeday.me/bug/20190529/1179741.html