C# VSIX扩展-关闭似乎没有vsWindowKind常量的窗口
在我的Visual Studio扩展中,我可以通过以下操作关闭IDE中的窗口:C# VSIX扩展-关闭似乎没有vsWindowKind常量的窗口,c#,guid,vsix,visual-studio-2017,C#,Guid,Vsix,Visual Studio 2017,在我的Visual Studio扩展中,我可以通过以下操作关闭IDE中的窗口: var dte = (DTE)GetService(typeof(EnvDTE.DTE)); dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Close(); (这将关闭输出窗口) 有些窗口似乎没有“vsWindowKind”常量(此处列出了所有这些常量:)-如果您知道GUID,仍然可以关闭它们。例如: dte.Windows.Item("{131369F
var dte = (DTE)GetService(typeof(EnvDTE.DTE));
dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Close();
(这将关闭输出窗口)
有些窗口似乎没有“vsWindowKind”常量(此处列出了所有这些常量:)-如果您知道GUID,仍然可以关闭它们。例如:
dte.Windows.Item("{131369F2-062D-44A2-8671-91FF31EFB4F4}").Close();
关闭团队资源管理器窗口(我从另一个SO问题中找到GUID:)
我的问题是,在哪里可以找到IDE窗口GUID的完整列表
编辑:因此,对于VS2015及以下版本,我可以通过执行以下操作在注册表中找到工具窗口列表:
var keyname = @"Software\Microsoft\VisualStudio\14.0_Config\ToolWindows";
using (var key = Registry.CurrentUser.OpenSubKey(keyname))
{
foreach (var subkey in key.GetSubKeyNames())
{
var fullkey = @"HKEY_CURRENT_USER\" + keyname + "\\" + subkey;
var name = (string)Registry.GetValue(fullkey, "Name", "");
if (!string.IsNullOrWhiteSpace(name))
{
Console.WriteLine($"{subkey} {name}");
}
}
}
但是,VS2017没有此类条目(可能是因为它允许您在同一台PC上安装多个副本)
无论如何,文档列表仍然丢失!这是您要查找的吗?vsWindowType枚举文档
您可以使用DTE.ActiveWindow.ObjectKind获取当前窗口GUID。这样,您可以自己构建IDE窗口GUID列表