Командное окно — это окно инструментов для выполнения команд (или их алиасов) интегрированной среды. Команды интегрированной среды — это по существу способ дать указание интегрированной среде выполнить некое действие. Некоторые команды соответствуют непосредственно пунктам меню (таким как File | Open), в то время как другие эквивалентов в меню не имеют.
Объект Commandwindow позволяет вам программным путем перенаправить команды в командное окно и выполнить их. Вы можете также вывести в окно текстовую строку (для информационных целей) и очистить его текущее содержимое:
' Получить ссылку на командное окно Dim cmdWindow As Commandwindow = _
DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Obj ect
' Вывести в командном окне некий текст cmdWindow.OutputString("Hello, World!")
' Очистить командное окно cmdWindow.Clear()
В листинге 11.6 показано, как программно выполнять команды объекта Commandwindow.
Imports EnvDTE
Imports EnvDTE80
Imports Microsoft. VisualStudio. CommandBars
Imports System.Diagnostics
Imports System.Windows. Forms
Public Module MacroExamples
Public Sub ExecCommandWindow()
Dim cmdWindow As Commandwindow = _
DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Obj ect
' Отобразить в командном окне некий текст
cmdWindow.OutputString("Executing command from the automation OM...")
' Послать строки команд в командное окно и выполнить их...
' Эта команда запустит журналирование всего ввода/вывода ' командного окна в указанный файл
cmdWindow.Sendlnput("Tools.LogCommandWindowOutput cmdwindow.log", True)
' Открыть файл в редакторе кода:
' 1. Мы используем алиас 'of' для команды File.OpenFile.
' 2. Эта команда принимает параметры в кавычках (в данном случае
' это имя редактора, в который нужно загрузить файл).
N
Dim Cmd As String = "of " cmd = cmd & _
С:\Contoso\ContosoCommonFramework\Integration\Integration.cs
cmd = cmd & "/e:""CSharp Editor
cmdWindow.Sendlnput(cmd, True)
cmdWindow.Sendlnput("Edit.Find MessageTrxId", True)
' Выключить журналирование
cmdWindow.Sendlnput("Tools.LogCommandWindowOutput /off", True)
End Sub End Module