如何获取特定OutputWindowPane的IVsTextView?

时间:2010-03-11 15:34:36

标签: c# vs-extensibility

我有一个visual studio集成包,用于跟踪调试窗口的输出。我可以得到输出窗口的IVsTextView,如下所示:

IVsTextView view = GetService(typeof(SVsOutputWindow)) as IVsTextView;
// grab text from the view and process it

但是,如果“调试”面板以外的其他面板当前处于活动状态,则此IVsTextView将包含该面板中的文本,而不是“调试”面板。

是否可以获取特定输出窗口面板的IVsTextView,而无需在获取输出窗口的IVsTextView之前调用OutputWindowPanel.Activate()?

1 个答案:

答案 0 :(得分:2)

当然,这是可能的。您只需选择要阅读的输出窗格:

IVsOutputWindow outWindow = GetService(typeof(SVsOutputWindow)) as IVsOutputWindow;
// Give me the Debug pane
Guid debugPaneGuid = VSConstants.GUID_OutWindowDebugPane;
IVsOutputWindowPane pane;
outWindow.GetPane(ref debugPaneGuid, out pane);
// Get text view and process it
IVsTextView view = pane as IVsTextView;