2017-02-12 11 views
1

定数持っていないようです、私はこれを行うことによって、IDEでウィンドウを閉じることができますウィンドウを閉じる:VSIX延長 - vsWindowKindは私のVisual Studioの拡張機能で

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の完全なリストを見つけることができます

EDIT: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}"); 
     } 
    } 
} 

しかし、そのようなentriが存在しませんそれはVS2017用です(おそらく同じPCに複数のコピーをインストールできるからです)。

とにかく、文書化されたリストはまだありません!

答えて

0

あなたはDTE.ActiveWindow.ObjectKindと現在のウィンドウのGUIDを取得することができます。この方法で、IDEウィンドウGUIDのリストを自分で作成することができます。

関連する問題