Zugriff auf Fenster im Visual Studio

Das Visual Studio Automation Interface stellt diverse Methoden und Properties zur Verfügung, um auf aktive Fenster im Visual Studio zugreifen zu können. Das folgende Kapitel stellt Beispiel-Code für diese Funktionalität zur Verfügung. Desweiteren empfehlen wir als detailiertes Nachschlagewerk die Webseiten des Microsoft Developer Network (MSDN), welche ausführliche Informationen über das Visual Studio Objektmodell zur Verfügung stellen. Dieses Kapitel behandelt die folgenden Aufgaben:

Zugriff auf aktive Fenster

Die DTE-Schnittstelle bietet eine Eigenschaft namens "ActiveWindow", die das derzeit aktive Fenster in Visual Studio als ein Objekt des Typs EnvDTE.Window ausgibt.

Code-Ausschnitt (C#):

EnvDTE.Window activeWin = dte.ActiveWindow; 

Code-Ausschnitt (Powershell):

          $activeWin = $dte.ActiveWindow
        

Schliessen von aktiven Fenstern

Abhängig von der Anwendung des Kunden ist es möglicherweise zweckmäßig, vor der Konfiguration von TwinCAT über das Automation Interface zunächst alle offenen Fenster zu schliessen. Der folgende Code-Ausschnitt schliesst alle aktiven Fenster bis auf den "Solution Explorer".

Code-Ausschnitt (C#):

        try
{
while (!dte.ActiveWindow.Caption.Contains("Solution Explorer"))
dte.ActiveWindow.Close();
}
catch (InvalidOperationException ex)
{
// use DTE.Quit() to close main window
}

Fenster von der TwinCAT SPS-Konfiguration aus öffnen

Es ist ebenfalls möglich, Fenster von TwinCAT SPS zu öffnen, z. B. eine Visualisierung. Der folgende Code-Ausschnitt öffnet eine bestehende TwinCAT Visualisierung vom SPS-Projekt "Untitled1" und macht sie zum aktiven Fenster.

Code-Ausschnitt (C#):

string fileName = @"C:\TwinCAT Project1\TwinCAT Project1\Untitled1\VISUs\Visu.TcVIS";
dte.ItemOperations.OpenFile(fileName);

Code-Ausschnitt (Powershell):

          $fileName = @"C:\TwinCAT Project1\TwinCAT Project1\Untitled1\VISUs\Visu.TcVIS"
dte.ItemOperations.OpenFile($fileName)