Compartilhar via


Como: Manipular eventos de ambiente em Macros

Cada novo projeto de macro inclui um módulo chamado EnvironmentEvents, que fica visível somente em Macros IDE. Este é um item de modelo que contém um número de procedimentos de eventos predefinidos úteis que você pode implementar suas macros, especificamente:

Você pode exibir esses procedimentos de evento no browers objeto no editor de código.

Para inserir um procedimento de evento predefinidos na sua macro

  1. No Class View painel do explorer, no IDE de Macros, clique duas vezes o EnvironmentEvents o nó para exibi-lo como um EnvironmentEvents guia e um menu suspenso no painel do editor de macro.

  2. Da EnvironmentEvents menu drop-down, selecione um tipo de eventos, tais como TaskListEvents. O declarações caixa de combinação agora é preenchida com o disponível Lista de tarefas eventos.

  3. Sobre o declarações menu drop-down, selecione um evento, como TaskAdded, para adicionar o seu procedimento de evento para o módulo.

O evento é inserido em sua macro e agora você pode adicionar código ao procedimento de evento.

Em alguns casos, você talvez queira adicionar mais procedimentos de evento para o Nome da classe caixa de combinação, por exemplo, o CommandEvents eventos.

Adicionando um novo procedimento de evento

Para adicionar um novo procedimento de evento da caixa de combinação de nome de classe

  1. Insira uma declaração do evento após a região oculta da EnvironmentEvents módulo rotulado "gerado automaticamente o código, não modifique":

    <System.ContextStaticAttribute()> Public WithEvents CommandEvents As EnvDTE.CommandEvents
    ' This procedure handles DTEEvents.OnMacrosRuntimeReset.
    
  2. Configure o procedimento OnMacrosRuntimeReset para que a nova variável de evento inicializa a cada vez que uma macro é novamente:

    Public Sub DTEEvents_OnMacrosRuntimeReset() Handles _
      DTEEvents.OnMacrosRuntimeReset
       CommandEvents = DTE.Events.CommandEvents
    End Sub
    
  3. Configure o procedimento de OnStartupComplete para concluir o procedimento de inicialização na etapa 5.

    Private Sub DTEEvents_OnStartupComplete() Handles_
      DTEEvents.OnStartupComplete
            CommandEvents = DTE.Events.CommandEvents
    End Sub
    
  4. Adicione código para responder ao evento. Neste exemplo, após um comando é executado, este procedimento relata os detalhes do comando emitido:

    Public Sub CommandEvents_AfterExecute(ByVal Guid As String, ByVal ID As Integer, ByVal CustomIn As Object, ByVal CustomOut as Object) Handles CommandEvents.AfterExecute
       MsgBox(DTE.Commands.Item(Guid, ID).Name)
    End Sub
    

Ao declarar um novo evento, você deve primeiro inicializá-lo para usá-lo. Para macros, o lugar para inicializar a nova variável do evento está na OnMacrosRuntimeReset procedimento de evento.

Esse evento ocorre sempre que o tempo de execução da macro é redefinido como, por exemplo, quando uma macro é carregada ou descarregada. Quando isso ocorre, há uma perda de estado global. Ou seja, os valores das variáveis globais são perdidos e manipuladores de eventos são soltos, o que significa que o código que anteriormente executado quando um evento ocorre não faz isso.

Quando o tempo de execução da macro é redefinido, o OnMacrosRuntimeReset evento ocorre. Isso permite que você reinicializar automaticamente as variáveis e manipuladores de eventos sempre que ocorre a uma redefinição de tempo de execução da macro. Inicializando variáveis de eventos e manipuladores de OnMacrosRuntimeReset, você garante que seus valores são reinicializados sempre em tempo de execução da macro é redefinir e, assim, que seus novos procedimentos de evento funcionem corretamente.

Consulte também

Tarefas

Como: Gravar Macros

Como: Executar Macros

Como: Gravar Macros

Como: Gerenciar Macros

Como: Referência de COM e.NET Framework disponíveis em Macros

Conceitos

Automatizar ações repetitivas usando Macros

Depurar Macros

A gravação de macro e problemas de execução

Segurança de macros e questões sobre compartilhamento