Compartilhar via


Como: Manipular eventos de ambiente em macros

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

Você pode exibir esses procedimentos de evento no nome de classe caixa de combinação e seus eventos no Nome do método caixa de combinação.Ambas as caixas estão localizadas na parte superior do editor de código.

Para inserir um procedimento de evento pré-definido em sua macro

  1. Sobre o Modo de exibição de classe explorer painel, no IDE de macros, clicar duas vezes o EnvironmentEvents nó para exibi-lo sistema autônomo um EnvironmentEvents guia e um menu suspenso no painel do editor de macro.

  2. From a EnvironmentEvents menu suspenso, selecionar um tipo de eventos, sistema autônomo TaskListEvents.The Declarações caixa de combinação agora é preenchida com o disponívelLista de tarefas eventos.

  3. Sobre o Declarações suspensa menu, selecionar um evento, sistema autônomo TaskAdded, para adicionar 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, talvez queira adicionar mais procedimentos de evento para o nome de classe caixa de combinação, por exemplo, a CommandEvents eventos.

Adicionando um novo procedimento de evento

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

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

    <System.ContextStaticAttribute()> Public WithEvents CommandEvents As EnvDTE.CommandEvents
    ' This procedure handles DTEEvents.OnMacrosRuntimeReset.
    
  2. conjunto até o OnMacrosRuntimeRe conjunto procedimento para que o novo evento variável inicializa cada vez que uma macro é re-run:

    Public Sub DTEEvents_OnMacrosRuntimeReset() Handles _
      DTEEvents.OnMacrosRuntimeReset
       CommandEvents = DTE.Events.CommandEvents
    End Sub
    
  3. Configure o procedimento 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 de execução, esse procedimento informa os detalhes do comando foi 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
    

Quando você declara um novo evento, você deve primeiro inicializar-o para usá-lo.Para macros, o lugar para inicializar a nova variável de evento é no OnMacrosRuntimeReset procedimento de evento.

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

Quando o tempo de execução da macro é redefinido, o OnMacrosRuntimeReset evento ocorre. Isso permite que você reinicialize automaticamente as variáveis e manipuladores de eventos sempre que ocorre uma reiniciar 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 que é time de execução da macro reiniciar e, assim, que novos procedimentos de evento funcionem corretamente.

Consulte também

Tarefas

Como: Registro de macros

Como: Executar macros

Como: Registro de macros

Como: Gerenciar macros

Como: Referência de COM e .NET estrutura Components em macros

Conceitos

Automatizando ações repetitivas usando macros

Depurando macros

Gravação de macro e executando problemas

Segurança em macros e problemas de compartilhamento