1 ╲╱.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/╲╱.TXT"); } } CommandCSv4.0 true 2 Alba.DAT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/Alba.DAT"); } } CommandCSv4.0 true 3 userContent.CSS public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/FF/Chrome/userContent.CSS"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 4 Cola.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/Cola.TXT"); } } CommandCSv4.0 true 5 Cola_R.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/Cola_R.TXT"); } } CommandCSv4.0 true 6 InRaw public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/InRaw.TXT"); } } CommandCSv4.0 true 7 Posts.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/Posts.TXT"); } } CommandCSv4.0 true 8 default.htm public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/default.htm"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 9 AwayLog.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/AwayLog.TXT"); } } CommandCSv4.0 true 10 z1.z1 public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/z1.z1"); } } CommandCSv4.0 true 11 ╱╲E.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/╱╲E.TXT"); } } CommandCSv4.0 true 12 userChrome.CSS public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/FF/Chrome/userChrome.CSS"); } } CommandCSv4.0 true 13 z1.CPP public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/_Source/z1.CPP"); } } CommandCSv4.0 true 14 Nyms.HTM public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/Nyms.HTM"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 15 z1.HTM public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/z1.HTM"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 16 ..z1.CPP public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/Backup/..z1.CPP"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 17 MyPlayList.HTM public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/MyPlayList.HTM"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 18 Snippets.TXT public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/X/Snippets.TXT"); } } CommandCSv4.0 true 19 Snippets.vCmd public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "\"C:/__/Sys/AppData/Sergey Vlasov/Visual Commander/1.0/Snippets.vCmd\""); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 20 Win11.REG public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/TaskBar/Win11.REG"); System.Threading.Thread.Sleep(999); try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 21 TV public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("File.OpenFile", "C:/__/EXEs/ZoomPlayer/zplayer.playcache"); } } CommandCSv4.0 true 25 <Here> public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @"<<A hRef=''"; DTE.ExecuteCommand("Edit.BreakLine"); (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @">Here</A>>"; } } CommandCSv4.0 true 26 > Quote public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @"> "; DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.LineDown"); } } CommandCSv4.0 true 27 // Comment public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @"// "; DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.LineDown"); } } CommandCSv4.0 true 29 LongQuoteB public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @"<<"; } } CommandCSv4.0 true 30 LongQuoteE public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @">>"; } } CommandCSv4.0 true 31 Cln.Me public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionReplaceAll , @"(^.*( 404 - |TweetmemeBot|Crawler|crawler|Robosourcer|CrawlDaddy|WASALive-Bot|org_bot|spider|robot|msnbot|CCBot" + @"|DotBot|SemrushBot|SurveyBot|coccoc\.|bingbot|BingPreview|Googlebot" + @"|Baiduspider|Yandex|MJ12bot|Ezooms|NSPlayer|AhrefsBot|SeznamBot).*\r?$\n)" + @"|(""|GET |http\://|( - - \[.*\] )|( 200 \d+ )|(HTTP/...)|(Mozilla/... \())" , (int)( EnvDTE.vsFindOptions.vsFindOptionsMatchCase | EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocument , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" Not an access·log file." ; return; } } } CommandCSv4.0 true 32 Del Block public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionFind, @"^■\r?$" , (int)( EnvDTE.vsFindOptions.vsFindOptionsBackwards | EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocument , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" Not a ■⏎⏎■⏎ file." ; return; } DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.LineDown"); if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionFind, @"^■\r?$\n" , (int)( EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocument , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" Not a ■⏎⏎■⏎ file." ; return; } DTE.ExecuteCommand("Edit.SelectToLastGoBack"); DTE.ExecuteCommand("Edit.Cut"); DTE.ExecuteCommand("Edit.ScrollLineCenter"); } } CommandCSv4.0 true 33 Mark Read public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionFind, @"^■\r?$" , (int)( EnvDTE.vsFindOptions.vsFindOptionsBackwards | EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocument , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" Not a ■⏎⏎■⏎ file." ; return; } DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.LineDown"); if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionFind, @"^■\r?$\n" , (int)( EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocument , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" Not a ■⏎⏎■⏎ file." ; return; } DTE.ExecuteCommand("Edit.SelectToLastGoBack"); if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionFind, @"^ ╱ " , (int)( EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocumentSelection , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" Not an Unread Post." ; return; } (DTE.ActiveDocument.Selection as EnvDTE.TextSelection).Text = @" ╳ "; if ( DTE.Find.FindReplace( EnvDTE.vsFindAction.vsFindActionFind, @"^ ╱ " , (int)( EnvDTE.vsFindOptions.vsFindOptionsRegularExpression ) , @"", EnvDTE.vsFindTarget.vsFindTargetCurrentDocument , @"", @"", EnvDTE.vsFindResultsLocation.vsFindResultsNone ) == EnvDTE.vsFindResult.vsFindResultNotFound ) { DTE.StatusBar.Text = @" No Unread Posts." ; return; } DTE.ExecuteCommand("Edit.CharLeft"); DTE.ExecuteCommand("Edit.LineDown"); DTE.ExecuteCommand("Edit.ScrollLineCenter"); } } CommandCSv4.0 true 35 TogBar public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { EnvDTE.Property hScroll = DTE.get_Properties( "TextEditor", "PlainText" ).Item("ShowHorizontalScrollBar"); hScroll.Value = !(bool)hScroll.Value ; try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 36 Wrap public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { EnvDTE.Properties jEd = DTE.get_Properties( "TextEditor", "PlainText" ); EnvDTE.Property WordWrap = jEd.Item("WordWrap"); WordWrap.Value = !(bool)WordWrap.Value ; jEd.Item("VirtualSpace").Value = true ; jEd = DTE.get_Properties( "TextEditor", "C/C++" ); WordWrap = jEd.Item("WordWrap"); WordWrap.Value = !(bool)WordWrap.Value ; jEd.Item("VirtualSpace").Value = true ; try { DTE.ExecuteCommand("Edit.StopOutlining"); } catch { } } } CommandCSv4.0 true 37 Del to BoL public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { DTE.ExecuteCommand("Edit.LineFirstColumnExtend"); DTE.ExecuteCommand("Edit.Delete"); } } CommandCSv4.0 true 51 SavKeys public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { this.DTE = DTE; using (System.Windows.Forms.SaveFileDialog pathDialog = new System.Windows.Forms.SaveFileDialog()) { pathDialog.Filter = FileDialogFilter(); if (pathDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) Save(pathDialog.FileName); } } private void Save(string file) { Shortcuts shortcuts = new Shortcuts(); shortcuts.shortcuts = new System.Collections.Generic.List<CommandShortcut>(); for (int i = 0; i < 99; ++i) { try { EnvDTE.Command command = (DTE.Commands as EnvDTE80.Commands2).Item(guidVisualCommanderCmdSet.ToString("B"), (int)(cmdidCommand01 + i)); CommandShortcut commandShortcut = new CommandShortcut(); commandShortcut.shortcuts = new System.Collections.Generic.List<string>(); foreach (var o in command.Bindings as object[]) commandShortcut.shortcuts.Add(o.ToString()); if (commandShortcut.shortcuts.Count > 0) { commandShortcut.id = i + 1; commandShortcut.name = command.Name; shortcuts.shortcuts.Add(commandShortcut); } } catch (System.Exception) { } } XmlSerialize(file, shortcuts); } // throw(System.ApplicationException) private static void XmlSerialize<T>(string file, T o) { try { System.Xml.XmlWriterSettings settings = new System.Xml.XmlWriterSettings(); settings.Indent = true; using (System.Xml.XmlWriter stream = System.Xml.XmlWriter.Create(file, settings)) { System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T)); serializer.Serialize(stream, o); } } catch (System.Exception e) { throw new System.ApplicationException(e.Message); } } static private string FileDialogFilter() { return "Visual Commander keyboard shortcuts (*.vcmdk)|*.vcmdk|All files|*.*"; } private EnvDTE80.DTE2 DTE; public const string guidVisualCommanderCmdSetString = "08b4a2cc-a2da-4959-9d46-6dc492080b48"; public static readonly System.Guid guidVisualCommanderCmdSet = new System.Guid(guidVisualCommanderCmdSetString); public const uint cmdidCommand01 = 201; } public class Shortcuts { public System.Collections.Generic.List<CommandShortcut> shortcuts; } public class CommandShortcut { public int id; public string name; public System.Collections.Generic.List<string> shortcuts; } System.Xml Command CS v4.0 true false 52 2 public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { this.DTE = DTE; using (System.Windows.Forms.OpenFileDialog pathDialog = new System.Windows.Forms.OpenFileDialog()) { pathDialog.Filter = FileDialogFilter(); if (pathDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) Restore(pathDialog.FileName); } } private void Restore(string file) { Shortcuts shortcuts = XmlDeserialize<Shortcuts>(file); if (shortcuts == null || shortcuts.shortcuts == null) return; foreach(CommandShortcut s in shortcuts.shortcuts) { try { EnvDTE.Command command = (DTE.Commands as EnvDTE80.Commands2).Item(guidVisualCommanderCmdSet.ToString("B"), (int)(cmdidCommand01 + s.id - 1)); object[] bindings = new object[s.shortcuts.Count]; for (int i = 0; i < s.shortcuts.Count; ++i) bindings[i] = s.shortcuts[i]; command.Bindings = bindings; } catch (System.Exception e) { System.Windows.MessageBox.Show(e.Message); } } } // throw(System.ApplicationException) private static T XmlDeserialize<T>(string file) { try { using (System.Xml.XmlReader stream = System.Xml.XmlReader.Create(file)) { System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T)); return (T)serializer.Deserialize(stream); } } catch (System.Exception e) { throw new System.ApplicationException(e.Message); } } static private string FileDialogFilter() { return "Visual Commander keyboard shortcuts (*.vcmdk)|*.vcmdk|All files|*.*"; } private EnvDTE80.DTE2 DTE; public const string guidVisualCommanderCmdSetString = "08b4a2cc-a2da-4959-9d46-6dc492080b48"; public static readonly System.Guid guidVisualCommanderCmdSet = new System.Guid(guidVisualCommanderCmdSetString); public const uint cmdidCommand01 = 201; } public class Shortcuts { public System.Collections.Generic.List<CommandShortcut> shortcuts; } public class CommandShortcut { public int id; public string name; public System.Collections.Generic.List<string> shortcuts; } System.Xml Command CS v4.0 true false 1 Hide MenuBar+SignIn public class E : VisualCommanderExt.IExtension, Microsoft.VisualStudio.Shell.Interop.IVsDebuggerEvents { public void Close() { timer.Stop(); } string TaskBarText( Microsoft.VisualStudio.Shell.Interop.DBGMODE db ) { db = db & ~Microsoft.VisualStudio.Shell.Interop.DBGMODE.DBGMODE_EncMask ; return db == Microsoft.VisualStudio.Shell.Interop.DBGMODE.DBGMODE_Break ? "-Stopped-" : db == Microsoft.VisualStudio.Shell.Interop.DBGMODE.DBGMODE_Run ? "-Ready-" : "-Ed-" ; } public virtual int OnModeChange( Microsoft.VisualStudio.Shell.Interop.DBGMODE db ) { _vsMainWindow.SetTitle( TaskBarText( db ) ); return 0; } class VSMainWindow : System.Windows.Forms.NativeWindow { private System.IntPtr m_MainHWND; private bool m_SetTextEnabled; private string m_CurrentTitle; public void Initialize( System.IntPtr main_hwnd ) { m_MainHWND = main_hwnd; AssignHandle( main_hwnd ); } public void Deinitialize() { if ( m_MainHWND != default( System.IntPtr ) ) { ReleaseHandle(); m_MainHWND = default( System.IntPtr ); } } [ System.Runtime.InteropServices.DllImport( "user32.dll", SetLastError = true , CharSet = System.Runtime.InteropServices.CharSet.Auto ) ] private static extern bool SetWindowText( System.IntPtr hwnd, System.String lpString ); public void SetTitle( string title ) { if ( m_CurrentTitle != null && m_CurrentTitle == title ) return; m_CurrentTitle = title; m_SetTextEnabled = true; try { SetWindowText( m_MainHWND, title ); } finally { m_SetTextEnabled = false; } } protected override void WndProc( ref System.Windows.Forms.Message m ) { const int WM_SETTEXT = 0xC; if ( m.Msg != WM_SETTEXT ) base.WndProc( ref m ); else { if ( m_SetTextEnabled ) base.WndProc( ref m ); else m.Result = (System.IntPtr)1; } } } public void SetSite( EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package ) { _DTE = DTE ; timer = new System.Windows.Threading.DispatcherTimer(); timer.Interval = System.TimeSpan.FromMilliseconds(1000); timer.Tick += OnTimer; if ( !Hide_MenuBar_SignIn() ) timer.Start(); } private void OnTimer(System.Object o, System.EventArgs a) { if ( Hide_MenuBar_SignIn() ) timer.Stop(); } private bool Hide_MenuBar_SignIn() { uint rv ; System.Windows.FrameworkElement MenuBar, SignIn ; SignIn = FindElement(System.Windows.Application.Current.MainWindow, "FrameControlContainerBorder"); if ( SignIn != null ) { SignIn.Visibility = System.Windows.Visibility.Collapsed; MenuBar = FindElement(System.Windows.Application.Current.MainWindow, "MainWindowTitleBar"); if ( MenuBar != null ) MenuBar.Visibility = System.Windows.Visibility.Collapsed; System.IntPtr w = (System.IntPtr)_DTE.MainWindow.HWnd ; _vsMainWindow = new VSMainWindow(); _vsMainWindow.Initialize( w ); _vsMainWindow.SetTitle( "-Ed-" ); Microsoft.VisualStudio.Shell.Interop.IVsDebugger debugger = ( Microsoft.VisualStudio.Shell.Interop.IVsDebugger ) Microsoft.VisualStudio.Shell.Package.GetGlobalService( typeof( Microsoft.VisualStudio.Shell.Interop.IVsDebugger ) ); debugger.AdviseDebuggerEvents( this, out rv ); } return SignIn != null ; } private System.Windows.FrameworkElement FindElement(System.Windows.Media.Visual v, string name) { if (v == null) return null; for (int i = 0; i < System.Windows.Media.VisualTreeHelper.GetChildrenCount(v); ++i) { System.Windows.Media.Visual child = System.Windows.Media.VisualTreeHelper.GetChild(v, i) as System.Windows.Media.Visual; if (child != null) { System.Windows.FrameworkElement e = child as System.Windows.FrameworkElement; if (e != null && e.Name == name) return e; } System.Windows.FrameworkElement result = FindElement(child, name); if (result != null) return result; } return null; } private System.Windows.Threading.DispatcherTimer timer; EnvDTE80.DTE2 _DTE ; VSMainWindow _vsMainWindow ; } Extension CS v4.0 true false 0 Temporary macro public class M : VisualCommanderExt.ICommand { public void Run( EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package ) { } } CommandCSv4.0true