Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VSIX扩展-关闭似乎没有vsWindowKind常量的窗口_C#_Guid_Vsix_Visual Studio 2017 - Fatal编程技术网

C# VSIX扩展-关闭似乎没有vsWindowKind常量的窗口

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

在我的Visual Studio扩展中,我可以通过以下操作关闭IDE中的窗口:

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列表