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
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.
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.
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
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.
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
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
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: Referência de COM e.NET Framework disponíveis em Macros
Conceitos
Automatizar ações repetitivas usando Macros