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
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.
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.
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
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.
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
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
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: Referência de COM e .NET estrutura Components em macros
Conceitos
Automatizando ações repetitivas usando macros