Como processar eventos do PowerPoint 2002 utilizando o Visual Basic .NET 2002

Traduções de Artigos Traduções de Artigos
Artigo: 308330 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 308825.
Para obter uma versão de Microsoft Visual C++ .NET deste artigo, consulte 309309.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como processar eventos do Microsoft PowerPoint 2002 utilizando o Microsoft Visual Basic .NET 2002.

Mais Informação

Com o Microsoft Visual Studio .NET, pode utilizar delegados para receber eventos com o PowerPoint. O PowerPoint utiliza a interface IDispatch para lançar eventos. Para Lavatório correctamente os eventos, a aplicação de Visual Basic .NET tem de utilizar as interfaces IConnectionPointContainer e IConnectionPoint . A aplicação de recepção também tem de saber o DISPID dos eventos receber. Estes DISPID não está listados na biblioteca de tipos do PowerPoint, mas listado no código de exemplo abaixo como referência.

Criar o cliente de automatização exemplo do Visual Basic .NET

  1. Inicie o Microsoft Visual Studio NET.. No menu ficheiro , clique em Novo e em seguida, clique em projecto . Em tipos de projecto clique em Projectos do Visual Basic e clique em Windows Application em Templates . É criado o Form1 por predefinição.
  2. Adicione uma referência à Biblioteca de objectos do Microsoft PowerPoint . Para o fazer, siga estes passos:
    1. No menu projecto , clique em Add Reference .
    2. No separador COM , localize Microsoft PowerPoint 10.0 Object Library e, em seguida, clique em Seleccionar . Nota : Se tiver não o fez, recomenda-se que transferir e, em seguida, instale o Microsoft Office XP Primary Interop Assemblies (PIAs). Para obter informações adicionais sobre PIAs do Office XP, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
      328912INFO: PIAs do Microsoft Office XP estão disponíveis para transferência
    3. Clique em OK na caixa de diálogo Adicionar referências para aceitar a selecção. Se receber um pedido para gerar wrappers para as bibliotecas que seleccionou, clique em Sim .
  3. No menu Ver , clique em caixa de ferramentas para visualizar a mesma e adicione dois botões e uma caixa de listagem ao Form1.
  4. Em sequência, duplo clique Button1 , Button2 e Form1 .
  5. Na janela de código, substitua o seguinte código
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                    Handles Button1.Click
    
    End Sub
    
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                    Handles Button2.Click
    
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                   Handles MyBase.Load
    
    End Sub
    					
    com:
        Private m_oConnectionPoint As UCOMIConnectionPoint
        Private m_Cookie As Integer
        Private oPPT As PowerPoint.Application
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
                                                                       Handles MyBase.Load
            ' Create a new instance of PowerPoint.
            oPPT = New PowerPoint.Application()
    
            ' Show PowerPoint to the user.
            oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoTrue
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                        Handles Button2.Click
            ' Call Unadvise to remove the sink to the connection.
            m_oConnectionPoint.Unadvise(m_Cookie)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oPPT)
            GC.Collect()
        End Sub
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                        Handles Button1.Click
            Dim oConnPointContainer As UCOMIConnectionPointContainer
            ' QI for IConnectionPointContainer.
            oConnPointContainer = CType(oPPT, UCOMIConnectionPointContainer)
            ' Create a new variable that contains the GUID of the 
            ' PowerPoint.EApplication interface.
            Dim guid As New Guid("914934C2-5A91-11CF-8700-00AA0060263B")
            ' Find the connection point.
            oConnPointContainer.FindConnectionPoint(guid, m_oConnectionPoint)
            ' Call Advise to sink up the connection.
            m_oConnectionPoint.Advise(Me, m_Cookie)
        End Sub
    
        <DispId(2001)> Public Sub WindowSelectionChange(ByVal Sel As PowerPoint.Selection)
            Me.ListBox1.Items.Add("WindowSelectionChange")
        End Sub
    
        <DispId(2002)> Public Sub WindowBeforeRightClick(ByVal Sel As PowerPoint.Selection,
                                                                   ByVal Cancel As Boolean)
            Me.ListBox1.Items.Add("WindowBeforeRightClick")
        End Sub
    
        <DispId(2003)> Public Sub WindowBeforeDoubleClick(ByVal Sel As PowerPoint.Selection,
                                                                    ByVal Cancel As Boolean)
            Me.ListBox1.Items.Add("WindowBeforeDoubleClick")
        End Sub
    
        <DispId(2004)> Public Sub PresentationClose(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationClose")
        End Sub
    
        <DispId(2005)> Public Sub PresentationSave(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationSave")
        End Sub
    
        <DispId(2006)> Public Sub PresentationOpen(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationOpen")
        End Sub
    
        <DispId(2007)> Public Sub NewPresentation(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("NewPresentation")
        End Sub
    
        <DispId(2008)> Public Sub PresentationNewSlide(ByVal Sld As PowerPoint.Slide)
            Me.ListBox1.Items.Add("PresentationNewSlide")
        End Sub
    
        <DispId(2009)> Public Sub WindowActivate(ByVal Pres As PowerPoint.Presentation,
                                                 ByVal Wn As PowerPoint.DocumentWindow)
            Me.ListBox1.Items.Add("WindowActivate")
        End Sub
    
        <DispId(2010)> Public Sub WindowDeactivate(ByVal Pres As PowerPoint.Presentation,
                                                   ByVal Wn As PowerPoint.DocumentWindow)
            Me.ListBox1.Items.Add("WindowDeactivate")
        End Sub
    
        <DispId(2011)> Public Sub SlideShowBegin(ByVal Wn As PowerPoint.SlideShowWindow)
            Me.ListBox1.Items.Add("SlideShowBegin")
        End Sub
    
        <DispId(2012)> Public Sub SlideShowNextBuild(ByVal Wn As PowerPoint.SlideShowWindow)
            Me.ListBox1.Items.Add("SlideShowNextBuild")
        End Sub
    
        <DispId(2013)> Public Sub SlideShowNextSlide(ByVal Wn As PowerPoint.SlideShowWindow)
            Me.ListBox1.Items.Add("SlideShowNextSlide")
        End Sub
    
        <DispId(2014)> Public Sub SlideShowEnd(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("SlideShowEnd")
        End Sub
    
        <DispId(2015)> Public Sub PresentationPrint(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationPrint")
        End Sub
    
    
        <DispId(2016)> Public Sub SlideSelectionChanged(ByVal SldRange As PowerPoint.SlideRange)
            Me.ListBox1.Items.Add("SlideSelectionChanged")
        End Sub
    
        <DispId(2017)> Public Sub ColorSchemeChanged(ByVal SldRange As PowerPoint.SlideRange)
            Me.ListBox1.Items.Add("ColorSchemeChanged")
        End Sub
    
        <DispId(2018)> Public Sub PresentationBeforeSave(ByVal Pres As PowerPoint.Presentation,
                                                                       ByVal Cancel As Boolean)
            Me.ListBox1.Items.Add("PresentationBeforeSave")
        End Sub
    
        <DispId(2019)> Public Sub SlideShowNextClick(ByVal Wn As PowerPoint.SlideShowWindow,
                                                         ByVal nEffect As PowerPoint.Effect)
            Me.ListBox1.Items.Add("SlideShowNextClick")
        End Sub
    					
  6. Adicione o seguinte à secção importações na parte superior da janela de código:
    Imports System.Runtime.InteropServices 
    Imports Microsoft.Office.Interop
    					
  7. Teste o programa. Para o fazer, siga estes passos:
    1. Prima F5 para compilar e executar o programa. O PowerPoint é iniciado.
    2. Clique em Button1 para configurar os "event sinks".
    3. Crie uma nova apresentação no PowerPoint.

      Lançar WindowActivate , NewPresentation , PresentationNewSlide e WindowSelectionChange eventos.
    4. Guarde a apresentação.

      O evento PresentationSave é accionado.
    5. Feche a apresentação.

      O evento ' PresentationClose é accionado.
    6. Active Form1 no programa. Aparecem os eventos que foram accionados pelo PowerPoint e processados pelo programa na caixa de lista.
    7. Clique em Button2 para desligar os "event sinks".
    8. Feche o Form1 .

Referências

Para obter informações adicionais, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
254009INFO: O PowerPoint 2000 eventos demonstração disponível para transferência
Para obter mais informações sobre automatização do Office, consulte o seguinte site de suporte do Microsoft Office Development:
Perguntas mais frequentes e destaques para desenvolvimento Office
http://support.microsoft.com/ofd

Propriedades

Artigo: 308330 - Última revisão: 10 de fevereiro de 2014 - Revisão: 4.3
A informação contida neste artigo aplica-se a:
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbautomation kbhowto KB308330 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 308330

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com