Como: Usar Add-ins para controle macros
The Macros objeto na Visual Studio modelo de automação fornece a você uma medida de controle programático sobre macros que está sendo gravada no ambiente de desenvolvimento integrado (IDE). Ao usá-lo, você pode:
Pausar ou continuar a gravação de macro.
Adicione um ou mais linhas de código para a macro que está sendo gravada.
Determine se o gravador de macro está gravando uma macro.
Você também pode usar o ExecuteCommand método para emitir um comando diretamente ao IDE, tal sistema autônomo criar um novo arquivo.
Observação: |
---|
O Macros membros do objeto não são foi criados para ser usado dentro de uma macro; só deve ser usados dentro de um suplemento. |
The Visual Basic exemplo a seguir demonstra como referência e usar os vários membros do modelo de automação de macros.
Observação: |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Import and ExportSettings on the Tools menu.Para obter mais informações, consulte Configurações do Visual Studio. |
Exemplo
O exemplo a seguir verifica se uma macro está sendo gravada atualmente.Se for, adiciona uma linha extra de código para ele.
Public Sub OnConnection(ByVal application As Object, _
ByVal connectMode As ext_ConnectMode, ByVal addInInst _
As Object, ByRef custom As Array) Implements _
IDTExtensibility2.OnConnection
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
macroTest(_applicationObject)
End Sub
Public Sub macroTest(ByVal dte As DTE2)
Try
Dim objMac As Macros = dte.Macros
' Determine if a macro is recording. If it is,
' add a line of code to it and then let it resume
' recording.
If objMac.IsRecording = True Then
objMac.EmitMacroCode _
("MsgBox(""This was added by code."")")
Else
MsgBox("Macro is not recording.")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
macroTest(_applicationObject);
}
public void macroTest(DTE2 dte)
{
try
{
Macros objMac = dte.Macros;
// Determine if a macro is recording. If it is,
// add a line of code to it and then let it resume
// recording.
if (objMac.IsRecording == true)
{
objMac.EmitMacroCode("MsgBox(\"This was added by
code.\")");
}
else
{
System.Windows.Forms.MessageBox.Show("Macro is not
recording.");
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
Se você gravar uma macro e em em aberto um arquivo de texto, este é o código de macro como seria:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ItemOperations.NewFile("General\Text File")
End Sub
End Module
Quando você executar o código de exemplo e fazer o mesmo, uma linha extra é emitida (adicionado) para o código de macro:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ItemOperations.NewFile("General\Text File")
MsgBox("This line was added by code.")
End Sub
End Module
Consulte também
Tarefas
Como: Alterar características de janela
Demonstra Passo a passo: Criando um assistente
Conceitos
Automatizando Repetitive Actions by Using Macros
Gráfico do modelo de objetos de automação
Outros recursos
Criando e controlando o ambiente Windows