代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

是否可以通过编程方式清除Visual Studio(调试)输出窗口?

  •  17
  • Pure.Krome  · 技术社区  · 14 年前

    有没有可能清除Visual Studio 产量 窗口,以编程方式?例如,SysInternal的Debugger应用程序debugView具有 specific command called DBGVIEWCLEAR …这将清除日志窗口。

    请不要说:右键单击,清除窗口。用鼠标。我知道,但这不是我想要的。

    4 回复  |  直到 7 年前
        1
  •  6
  •   Adriaan Stander    14 年前

    对于vs 2008,请尝试此代码

    EnvDTE80.DTE2 ide = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.9.0");
    ide.ExecuteCommand("Edit.ClearOutputWindow", "");
    System.Runtime.InteropServices.Marshal.ReleaseComObject(ide);
    

    “VisualStudio.DTE.9.0”将从VS版本更改为版本。

        2
  •  3
  •   Agus Syahputra    12 年前

    与2010年相比:

    //Add reference EnvDTE100
    static void ClearOutput()
    {
        EnvDTE80.DTE2 ide = (EnvDTE80.DTE2)Marshal.GetActiveObject("VisualStudio.DTE.10.0");
        ide.ToolWindows.OutputWindow.ActivePane.Clear();
    }
    
        3
  •  2
  •   Wade Hatler    13 年前

    第一个答案适用于Visual Studio 2005之后的任何版本,但它似乎有点古怪。在清理控制台之前,我不得不延迟一秒钟,但没有比这更好的办法了。不知道为什么,但总比什么都没有好。它也只能在您只运行一个Visual Studio实例时工作。也许我会做一个扩展来查看runningobjecttable以选择正确的版本。

    无论如何,这或多或少起作用。

    using System;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    using System.Threading;
    using System.Windows.Forms;
    
    
    namespace VisualStudioHelper {
        public class VstHelper {
            // Add a Project Reference to "Microsoft Development Environment Properties 8.0" 
            // (the one for Visual Studio, not SQL Server)
            public static void VstClearOutputWindow() {
                if (!Debugger.IsAttached)
                    return;
    
                Application.DoEvents();
                Thread.Sleep(1000);
                EnvDTE80.DTE2 ide = (EnvDTE80.DTE2)Marshal.GetActiveObject("VisualStudio.DTE.10.0");
                ide.ExecuteCommand("Edit.ClearOutputWindow", "");
                Marshal.ReleaseComObject(ide);
            }
        }
    }
    
        4
  •  -2
  •   The Chairman    14 年前

    怎么样 Console.Clear() ?