Como criar um projecto de automatização utilizando MFC e uma biblioteca de tipos

Traduções de Artigos Traduções de Artigos
Artigo: 178749 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo ilustra, detalhadamente como automatizar o componente Integração com aplicações compatíveis COM tais como aplicações do Microsoft Office.

Mais Informação

A secção que se segue ilustra como pode criar um MFC projecto. O exemplo que automatiza o Microsoft Excel. Pode utilizar os primeiros 8 passos para qualquer projecto e modificar os passos 9 a 15 quando trabalha com outra aplicação.

Criar um projecto de automatização

  1. Com a Microsoft Developer Studio, inicia um novo "AppWizard MFC (exe)" projecto com o nome "AutoProject."
  2. No passo 1 do AppWizard MFC, seleccionar "Caixa de diálogo com" o tipo de aplicação e, em seguida, clique em ' Concluir '.

    A caixa de diálogo nova informação de projecto aparece e indica que incluam classes a serem criados:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    						
    clique em OK para criar o projecto.
  3. A caixa de diálogo "IDD_AUTOPROJECT_DIALOG" é aberta na área de apresentação/edição do Visual Studio. Modificar-acordo com as instruções os dois passos seguintes.
  4. Remover o controlo de etiqueta (IDC_STATIC) e o botão ' Cancelar ' (IDCANCEL).
  5. Alterar o nome do botão OK para "IDRUN" e a legenda "Executar". Feche o formulário de estrutura AutoProject.rc caixa de diálogo.
  6. Clique em ClassWizard no menu Ver (ou prima CTRL+W).
  7. Seleccione os mapas de mensagem de separador. seleccionar IDRUN in o ID de objecto de caixa de listagem e seleccione "BN_CLICKED" a caixa de lista de mensagens. Clique em Adicionar função e aceite o nome da função "OnRun". Clique em OK para fechar o ClassWizard.

    NOTA: Este passo adiciona uma declaração para o membro da função "OnRun();" para o cabeçalho de ficheiro com o nome AutoProjectDLG.h. Este passo também adiciona uma estrutura vazia rotina de tratamento de função denominada CAutoProjectDlg::OnRun() para o ficheiro chamado AutoProjectDLG.cpp da mensagem.
  8. Clique em ClassWizard no menu Ver (ou prima CTRL+W).
  9. Seleccione o separador de automatização. clique em Adicionar classe e escolha "de uma biblioteca de tipos." Navegue para seleccionar a biblioteca de objectos para a aplicação que pretende automatizar (para este exemplo, se estiver a automatizar o Excel 97, escolha o Microsoft Excel 8.0 Object Library; a localização predefinida é C:\Program Files\Microsoft Office\Office\Excel8.olb).

    Se estiver a automatizar o Microsoft Excel 2000, escolha para o qual a localização predefinida é Office\Office\Excel9.olb o Files\Microsoft C:\Program Excel 9.0 Object Library.

    Se estiver a automatizar o Microsoft Excel 2002 e Microsoft Office Excel 2003, a biblioteca de objectos está incorporada no ficheiro Excel.exe. A localização predefinida para Excel.exe no Office 2002 é C:\Program Files\Microsoft Office\Office10\Excel.exe. A localização predefinida para Excel.exe no Office 2003 é C:\Program Files\Microsoft Office\Office11\Excel.exe. Quando tiver seleccionado a biblioteca de objectos apropriado, clique em abrir. Seleccionar todas as classes de confirmar classes lista e, em seguida, clique em OK.

    NOTA: A caixa de listagem na caixa de diálogo Confirmar Classes contém todas as interfaces de IDispatch (que são praticamente idênticas às classes) na biblioteca de tipos Microsoft Excel. Na parte inferior da caixa de diálogo caixa, que verá que contém um ficheiro de implementação denominado Excel8.cpp gerada wrappers de classe derivadas de ColeDispatchDriver() e o ficheiro de cabeçalho de declaração adequado é denominado Excel8.h. (Para o Excel 2002 e Excel 2003, os ficheiros são denominados Excel.cpp e Excel.h.)
  10. Clique em OK para fechar a caixa de diálogo ClassWizard MFC.
  11. Adicionar o código seguinte à função CAutoProjectApp::InitInstance(), que carrega e permite o COM os serviços de biblioteca:
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
    					
  12. Adicione a seguinte linha para o # incluir instruções na parte superior do ficheiro de programa AutoProject.cpp:
          #include <afxdisp.h>
    					
  13. Adicionar a instrução include excel8.h depois da instrução include para stdafx.h na parte superior do ficheiro de programa AutoProjectDlg.cpp:
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
    					
  14. Adicionar código de automatização de CAutoProjectDlg::OnRun() para que parece conforme é ilustrado abaixo:
          void CAutoProjectDlg::OnRun()
          {
              _Application app;  // app is the Excel _Application object
    
              // Start Excel and get Application object...
             if(!app.CreateDispatch("Excel.Application"))
             {
                AfxMessageBox("Couldn't start Excel.");
             }
             else
             {
                //Make Excel Visible and display a message
              app.SetVisible(TRUE);
              AfxMessageBox ("Excel is Running!");
             }
          }
    					
  15. Crie e execute o projecto. RESULTADOS: Quando clica em executar botão a caixa de diálogo, o Microsoft Excel será iniciado. Activar a caixa de diálogo Auto_Excel e fechar a caixa de mensagem. O Microsoft Excel será fechado quando a função CAutoProjectDlg::OnRun() termina uma vez que irá ter sido implementada a variável de aplicação fora do âmbito.

Notas adicionais

Uma vez ter adicionado as classes a partir de uma biblioteca de tipos ao projecto (como é no passo 9 acima), irá notar que muitas classes foram adicionadas ao projecto. Em Exibir classe, pode clicar duas vezes uma classe para ver as funções de membros dessa classe e, em seguida, faça duplo clique sobre a função de membro para visualizar a definição de função no ficheiro de implementação Excel8.cpp.

É necessário ir para a definição de uma função de membro se pretender verificar se um tipo de retorno ou se necessitar de alterar a implementação de uma função. Sempre que altera uma definição de função, lembre-se alterar a declaração no ficheiro Excel8.h. Ao fazê-lo, certifique-se que altere a declaração de função correcta; por vezes, é atribuído o mesmo nome funções de membros de vários classes--GetApplication() é um exemplo deste tipo.

Apesar dos passos acima ilustram como automatizar o Microsoft Excel, pode aplicar as mesmas ideias para automatizar a outras aplicações. A lista abaixo contém os nomes de ficheiro para bibliotecas de tipos das aplicações do Microsoft Office:
   Application                           Type Library
   --------------------------------------------------

   Microsoft Access 97                   Msacc8.olb
   Microsoft Jet Database 3.5            DAO350.dll
   Microsoft Binder 97                   Msbdr8.olb
   Microsoft Excel 97                    Excel8.olb
   Microsoft Graph 97                    Graph8.olb
   Microsoft Office 97                   Mso97.dll
   Microsoft Outlook 97                  Msoutl97.olb
   Microsoft PowerPoint 97               Msppt8.olb

   Microsoft Word 97                     Msword8.olb
   Microsoft Access 2000                 Msacc9.olb
   Microsoft Jet Database 3.51           DAO360.dll
   Microsoft Binder 2000                 Msbdr9.olb
   Microsoft Excel 2000                  Excel9.olb
   Microsoft Graph 2000                  Graph9.olb
   Microsoft Office 2000                 Mso9.dll
   Microsoft Outlook 2000                Msoutl9.olb
   Microsoft PowerPoint 2000             Msppt9.olb
   Microsoft Word 2000                   Msword9.olb 

   Microsoft Access 2002                 Msacc.olb
   Microsoft Excel 2002                  Excel.exe
   Microsoft Graph 2002                  Graph.exe 
   Microsoft Office 2002                 MSO.dll
   Microsoft Outlook 2002                MSOutl.olb
   Microsoft PowerPoint 2002             MSPpt.olb
   Microsoft Word 2002                   MSWord.olb

   Microsoft Office Access 2003          Msacc.olb
   Microsoft Office Excel 2003           Excel.exe
   Microsoft Graph 2003                  Graph.exe 
   Microsoft Office 2003                 MSO.dll
   Microsoft Office Outlook 2003         MSOutl.olb
   Microsoft Office PowerPoint 2003      MSPpt.olb
   Microsoft Office Word 2003            MSWord.olb
				
Nota: A localização predefinida para estas bibliotecas é C:\Program Files\Microsoft Office\Office (para Office 2002 o caminho é C:\...\Office10 e para o Office 2003 o caminho é C:\...\Office11), excepto para Dao350.dll ou dao360.dll e 10(MSO.dll) do Microsoft Office. A localização predefinida para Dao350.dll/Dao360.dll é C:\Program Files\Common Files\Microsoft Shared\TextConv. A localização predefinida para Mso.dll é c:\Programas \Ficheiros comuns\Microsoft Shared\Office10 para o Office 2002 e C:\Program Files\Common Files\Microsoft Shared\Office11 para o Office 2003.

Referências

Este artigo apresenta uma abordagem específica para criar um projecto de caixa de diálogo. Se pretender ver documentação mais geral sobre o processo de criação de um projecto VC ++ no Microsoft Developer Studio ambiente, existe uma excelente iniciação pode aceder utilizando o Visual Studio InfoView. Para aceder a iniciação, clique em Procurar no menu Ajuda. Clique no separador Índice remissivo e escreva o seguinte:
trabalhar com projectos
Clique em Tópicos da lista. Seleccione o tópico "Home page: trabalhar com projectos" e clique em Mostrar. Para obter mais informações sobre a automatização das aplicações do Office, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
222101Como localizar e utilizar a documentação sobre o modelo de objecto do Office

Propriedades

Artigo: 178749 - Última revisão: 23 de junho de 2005 - Revisão: 4.3
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
Palavras-chave: 
kbmt kbautomation kbhowto kbinterop KB178749 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: 178749

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