在我的Visual Studio扩展中,我可以通过执行以下操作关闭IDE中的窗口:
var dte = (DTE)GetService(typeof(EnvDTE.DTE));
dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Close();
(关闭输出窗口)
有些窗户似乎没有" vsWindowKind"常量(所有这些都列在这里:https://msdn.microsoft.com/en-us/library/envdte.constants.aspx) - 如果你知道GUID,你仍然可以关闭它们。例如:
dte.Windows.Item("{131369F2-062D-44A2-8671-91FF31EFB4F4}").Close();
关闭了团队资源管理器窗口(我从另一个SO问题中找到了GUID:How do I run a TFS Work Item Query with Visual Studio Macros。
我的问题是,在哪里可以找到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上安装多个副本)。
无论如何,文件清单仍然缺失!
答案 0 :(得分:0)
这是你要找的吗? vsWindowType枚举文档。
https://msdn.microsoft.com/en-us/library/envdte.vswindowtype.aspx
答案 1 :(得分:0)
您可以使用 DTE.ActiveWindow.ObjectKind 获取当前窗口GUID。这样您就可以自己构建IDE窗口GUID列表。