Freigeben über


Ausgabefenster (Visual Studio SDK)

Das Ausgabe Fenster ist ein Satz von Textbereichen, die Sie schreiben können und zu lesen. Visual Studio definiert diese integrierten Bereiche: Erstellen, um die Nachrichten zu Builds von Projekten erkennen, und AllgemeinVisual Studio von Nachrichten über die integrierte Entwicklungsumgebung (IDE) übermittelt. Projekte erhalten einen Verweis auf das Erstellen Bereich automatisch von der IVsBuildableProjectCfgVisual Studio ermöglicht Schnittstellenmethoden, und direkter Zugriff auf den Allgemein Bereich durch den SVsGeneralOutputWindowPane Dienst an. Zusätzlich zu den integrierten Bereichen können Sie erstellen und verwalten, benutzerdefinierte Bereiche besitzen.

Sie können das Fenster Ausgabe direkt über die IVsOutputWindow und Schnittstellen IVsOutputWindowPane steuern. Die IVsOutputWindow-Schnittstelle, die vom SVsOutputWindow bereitgestellten Dienst definierten Methoden zum Erstellen, das Abrufen und Zerstören von Ausgabe Fensterbereichen. Die IVsOutputWindow-Schnittstelle definiert Methoden zum Anzeigen von Bereichen, das Ausblenden von Bereichen und Bearbeiten des Texts. Eine alternative Methode des Steuerns des Ausgabe Fensters durch die OutputWindow und OutputWindowPane-Objekte im Visual Studio-Automatisierungsobjektmodell. Zu diesen Objekten gekapselt werden fast alle Funktionen der IVsOutputWindow und IVsOutputWindowPane-Schnittstellen. Darüber hinaus fügen OutputWindow und die OutputWindowPane-Objekte einige Funktionen auf höherer Ebene, um sie einfacher zu machen, die Ausgabe Fensterbereiche aufzulisten und Text aus den Bereichen abzurufen.

Beispiel

Beschreibung

Dieses Beispiel zeigt, wie Sie einen neuen Ausgabe Fensterbereich erstellt, indem die IVsOutputWindow-Schnittstelle verwendet.

Code

Private Function CreatePane(ByVal paneGuid As Guid, ByVal title As String, ByVal visible As Boolean, ByVal clearWithSolution As Boolean) As IVsOutputWindowPane 
    Dim output As IVsOutputWindow = DirectCast(GetService(GetType(SVsOutputWindow)), IVsOutputWindow) 
    Dim pane As IVsOutputWindowPane 
    
    ' Create a new pane. 
    output.CreatePane(paneGuid, title, Convert.ToInt32(visible), Convert.ToInt32(clearWithSolution)) 
    
    ' Retrieve the new pane. 
    output.GetPane(paneGuid, pane) 
    
    Return pane 
End Function
IVsOutputWindowPane CreatePane(Guid paneGuid, string title, 
    bool visible, bool clearWithSolution)
{
    IVsOutputWindow output = 
        (IVsOutputWindow)GetService(typeof(SVsOutputWindow));
    IVsOutputWindowPane pane;

    // Create a new pane.
    output.CreatePane(
        ref paneGuid, 
        title, 
        Convert.ToInt32(visible), 
        Convert.ToInt32(clearWithSolution));
    
    // Retrieve the new pane.
    output.GetPane(ref paneGuid, out pane);

    return pane;
}

Beispiel

Beschreibung

Dieses Beispiel zeigt, wie ein Ausgabe Fensterbereich erstellt, indem das OutputWindow-Objekt verwendet.

Code

Private Function CreatePane(ByVal title As String) As OutputWindowPane 
    Dim dte As DTE2 = DirectCast(GetService(GetType(DTE)), DTE2) 
    Dim panes As OutputWindowPanes = dte.ToolWindows.OutputWindow.OutputWindowPanes 
    
    Try 
        ' If the pane exists already, return it. 
        Return panes.Item(title) 
    Catch generatedExceptionName As ArgumentException 
        ' Create a new pane. 
        Return panes.Add(title) 
    End Try 
End Function
OutputWindowPane CreatePane(string title)
{
    DTE2 dte = (DTE2)GetService(typeof(DTE));
    OutputWindowPanes panes =
        dte.ToolWindows.OutputWindow.OutputWindowPanes;

    try
    {
        // If the pane exists already, return it.
        return panes.Item(title);
    }
    catch (ArgumentException)
    {
        // Create a new pane.
        return panes.Add(title);
    }
}

Kommentare

Obwohl die OutputWindowPanes-Auflistung ein Ausgabe Fensterbereich nach seinem Namen abrufen können, sind Namen des Bereichs nicht garantiert eindeutig sein. Wenn Sie die Eindeutigkeit eines Namens bezweifeln, verwenden Sie die GetPane-Methode, um den richtigen Bereich von deren GUID abzurufen.

Beispiel

Beschreibung

Dieses Beispiel zeigt, wie ein Ausgabe Fensterbereich gelöscht werden.

Code

Private Sub DeletePane(ByVal paneGuid As Guid) 
    Dim output As IVsOutputWindow = DirectCast(GetService(GetType(SVsOutputWindow)), IVsOutputWindow) 
    
    output.DeletePane(paneGuid) 
End Sub
void DeletePane(Guid paneGuid)
{
    IVsOutputWindow output =
        (IVsOutputWindow)GetService(typeof(SVsOutputWindow));

    output.DeletePane(ref paneGuid);
}

Beispiel

Beschreibung

Dieses Beispiel zeigt, wie ein Ausgabe Fensterbereich gelöscht werden, wenn ein OutputWindowPane-Objekt.

Code

Private Sub DeletePane(ByVal pane As OutputWindowPane) 
    Dim output As IVsOutputWindow = DirectCast(GetService(GetType(SVsOutputWindow)), IVsOutputWindow) 
    Dim paneGuid As New Guid(pane.Guid) 
    
    output.DeletePane(paneGuid) 
End Sub
void DeletePane(OutputWindowPane pane)
{
    IVsOutputWindow output =
        (IVsOutputWindow)GetService(typeof(SVsOutputWindow));
    Guid paneGuid = new Guid(pane.Guid);

    output.DeletePane(ref paneGuid);
}

Beispiel

Beschreibung

Dieses Beispiel zeigt, wie Sie den integrierten Allgemein Bereich des Ausgabe Fensters erhält.

Code

Private Function GetGeneralPane() As IVsOutputWindowPane 
    Return DirectCast(GetService(GetType(SVsGeneralOutputWindowPane)), IVsOutputWindowPane) 
End Function
IVsOutputWindowPane GetGeneralPane()
{
    return (IVsOutputWindowPane)GetService(
        typeof(SVsGeneralOutputWindowPane));
}

Beispiel

Beschreibung

Dieses Beispiel zeigt, wie ein Standardwert für eine Builds für Fehler analysiert und fügt ein Element am Fehler Fenster entsprechend hinzu, wenn vor der Nachricht gesendet wird, um Ausgabe Fenster.

Code

Private Sub OutputTaskItemStringExExample(ByVal buildMessage As String, ByVal buildPane As IVsOutputWindowPane, ByVal launchPad As IVsLaunchPad) 
    Dim priority As UInteger() = New UInteger(0) {}, lineNumber As UInteger() = New UInteger(0) {} 
    Dim fileName As String() = New String(0) {}, taskItemText As String() = New String(0) {} 
    Dim taskItemFound As Integer() = New Integer(0) {} 
    
    ' Determine whether buildMessage contains an error. 
    launchPad.ParseOutputStringForTaskItem(buildMessage, priority, fileName, lineNumber, taskItemText, taskItemFound) 
    
    
    ' If buildMessage contains an error, send it to both the 
    ' Error window and the Output window; otherwise, send it 
    ' to the Output window only. 
    If taskItemFound(0) <> 0 Then 
        buildPane.OutputTaskItemStringEx(buildMessage, DirectCast(priority(0), VSTASKPRIORITY), VSTASKCATEGORY.CAT_BUILDCOMPILE, Nothing, 0, fileName(0), _ 
        lineNumber(0), taskItemText(0), Nothing) 
    Else 
        buildPane.OutputString(buildMessage) 
    End If 
    
    buildPane.OutputString(vbLf) 
End Sub
void OutputTaskItemStringExExample(string buildMessage,
    IVsOutputWindowPane buildPane, IVsLaunchPad launchPad)
{
    uint[] priority = new uint[1], lineNumber = new uint[1];
    string[] fileName = new string[1], taskItemText = new string[1];
    int[] taskItemFound = new int[1];

    // Determine whether buildMessage contains an error.
    launchPad.ParseOutputStringForTaskItem(
        buildMessage, 
        priority, 
        fileName, 
        lineNumber, 
        taskItemText, 
        taskItemFound);


    // If buildMessage contains an error, send it to both the 
    // Error window and the Output window; otherwise, send it
    // to the Output window only.
    if (taskItemFound[0] != 0)
    {
        buildPane.OutputTaskItemStringEx(
            buildMessage, 
            (VSTASKPRIORITY)priority[0], 
            VSTASKCATEGORY.CAT_BUILDCOMPILE, 
            null, 
            0, 
            fileName[0], 
            lineNumber[0], 
            taskItemText[0], 
            null);
    }
    else
    {
        buildPane.OutputString(buildMessage);
    }

    buildPane.OutputString("\n");
}

Siehe auch

Referenz

IVsLaunchPad

IVsLaunchPadFactory

IVsOutputWindow

IVsOutputWindowPane

OutputWindow

OutputWindowPane

SVsGeneralOutputWindowPane

SVsLaunchPadFactory

SVsOutputWindow