有没有可能以编程的方式清除Visual Studio 输出窗口?例如,SysInternal 的调试器应用程序 DebugView 有一个名为 DBGVIEWCLEAR 的特定命令 .. 可以清除日志窗口。
请不要说:用鼠标右键,清空窗口。我知道这个方法,但那不是我想要的。
有没有可能以编程的方式清除Visual Studio 输出窗口?例如,SysInternal 的调试器应用程序 DebugView 有一个名为 DBGVIEWCLEAR 的特定命令 .. 可以清除日志窗口。
请不要说:用鼠标右键,清空窗口。我知道这个方法,但那不是我想要的。
对于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版本而改变。
"GetActiveObject("VisualStudio.DTE.10.0");
,它也无法在VS2010 RC中工作...)编译和运行,但无法清除该窗口。 - Pure.Krome对于VS 2010:
//Add reference EnvDTE100
static void ClearOutput()
{
EnvDTE80.DTE2 ide = (EnvDTE80.DTE2)Marshal.GetActiveObject("VisualStudio.DTE.10.0");
ide.ToolWindows.OutputWindow.ActivePane.Clear();
}
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);
}
}
}
针对VS 2019,请尝试以下代码:
//添加对Interop.EnvDTE100的引用
EnvDTE80.DTE2 ide = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE");
ide.ExecuteCommand("Edit.ClearOutputWindow", ""); System.Runtime.InteropServices.Marshal.ReleaseComObject(ide);
关于 Console.Clear() 呢?