如何在编写 VS2012 插件时检测 visual studio 的当前实例是否处于活动状态?

How to detect if the current instance of visual studio is active when writing a VS2012 addin?

我希望能够检测 visual studio 的当前实例何时处于活动状态或处于活动状态,但要搜索 [=11] 中可用的 hookable 事件=] collection 没有给我任何线索。我可以看到应用程序中的 window 何时是 activated/deactivated 和 _applicationObject.Events.WindowEvents.WindowActivated,但这无济于事。我想知道 who 应用程序何时处于活动状态,而不仅仅是文档或 window.

感谢任何帮助。

您可以获得 DTE.MainWindow.HWnd 句柄并使用 Win32 API。

您可以使用 System.Windows.Application.Current.Deactivated 和 Activated 事件来监视 Visual Studio 何时激活。