Como determinar o caminho para um aplicativo do Office

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 240794
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo inclui código de exemplo que ilustra como você pode determinar o caminho de instalação para um aplicativo do Microsoft Office fornecido o ProgID para esse aplicativo programaticamente.
Mais Informações
Servidores de automação têm um ProgID exclusivo que você normalmente usa para automatizar esse servidor. A lista a seguir fornece os ProgIDs para aplicativos do Office:

AplicativoProgID
Microsoft AccessAccess.Application
Microsoft ExcelExcel.Application
Microsoft OutlookOutlook.Application
Microsoft PowerPointPowerpoint.Application
Microsoft WordWord.Application
Microsoft FrontPageFrontPage.Application

Observe que a tabela acima fornece ProgIDs independente de versão. Aplicativos têm dependente de versão o ProgIDs assim que você pode usar com o código de exemplo fornecido neste artigo. Por exemplo, Microsoft Excel tem uma versão independente ProgID "Excel.Application" e ProgIDs dependente de versão, como "Excel.Application.8" e "Excel.Application.9."

Dado um ProgID de um servidor fora de processo, você pode obter sua localização, examinando o registro. Um servidor fora de processo tem uma chave no registro em:

HKEY_LOCAL_MACHINE\Software\Classes\ PROGID \CLSID

que fornece sua CLSID exclusivo (ou identificação de classe). Que CLSID, em seguida, tem uma chave do registro em:

HKEY_LOCAL_MACHINE\Software\Classes\CLSID\ {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx} \LocalServer32

em que o caminho para o servidor é especificado. Para ilustrar, se você quiser determinar o caminho para o Microsoft Excel usando o ProgID "Excel.Application", você deve examinar essa chave do Registro:

HKEY_LOCAL_MACHINE\Software\Classes\Excel.Application\CLSID

e, dependendo de qual versão do Excel é instalado, você poderia encontrar a que o CLSID para Excel.Application é "{00020841-0000-0000-C000-000000000046}." Em seguida, usando esta CLSID, você deve examinar a seguinte chave do Registro para localizar o caminho para Excel.exe:

\LocalServer32 HKEY_LOCAL_MACHINE\Software\Classes\CLSID\ {00020841-0000-0000-C000-000000000046}

Tudo isso pode ser feito por meio de programação usando as funções de API do registro em advapi32.dll.

Código de exemplo

  1. Inicie um novo projeto Standard EXE no Visual Basic. O Form1 é criado por padrão.
  2. Adicione um TextBox e um CommandButton ao Form1.
  3. Adicione o código a seguir ao módulo do Form1:
    Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _   "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _   ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) _   As LongPrivate Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _   "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _   ByVal lpReserved As Long, lpType As Long, _   ByVal lpData As String, lpcbData As Long) As Long                 'Note that if you declare the lpData parameter as String,                'you must pass it ByVal.                                                                                                         Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As LongConst REG_SZ As Long = 1Const KEY_ALL_ACCESS = &H3FConst HKEY_LOCAL_MACHINE = &H80000002   Private Sub Command1_Click()Dim hKey As LongDim RetVal As LongDim sProgId As StringDim sCLSID As StringDim sPath As String   sProgId = Text1.Text   'First, get the clsid from the progid   'from the registry key:   'HKEY_LOCAL_MACHINE\Software\Classes\<PROGID>\CLSID   RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Classes\" & _      sProgId & "\CLSID", 0&, KEY_ALL_ACCESS, hKey)   If RetVal = 0 Then      Dim n As Long      RetVal = RegQueryValueEx(hKey, "", 0&, REG_SZ, "", n)      sCLSID = Space(n)      RetVal = RegQueryValueEx(hKey, "", 0&, REG_SZ, sCLSID, n)      sCLSID = Left(sCLSID, n - 1)  'drop null-terminator      RegCloseKey hKey   End If      'Now that we have the CLSID, locate the server path at   'HKEY_LOCAL_MACHINE\Software\Classes\CLSID\    '     {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}\LocalServer32    RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _        "Software\Classes\CLSID\" & sCLSID & "\LocalServer32", 0&, _      KEY_ALL_ACCESS, hKey)   If RetVal = 0 Then      RetVal = RegQueryValueEx(hKey, "", 0&, REG_SZ, "", n)      sPath = Space(n)      RetVal = RegQueryValueEx(hKey, "", 0&, REG_SZ, sPath, n)      sPath = Left(sPath, n - 1)      MsgBox sPath      RegCloseKey hKey   End If      End Sub					
  4. Pressione a tecla F5 para executar o programa.
  5. No TextBox , digite Excel.Application e clique no CommandButton . O caminho para Excel.exe aparece em uma MessageBox.
Referências
Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
234788Como localizar o caminho de instalação de um aplicativo do Office 2000
145679Como usar a API do Registro para salvar e recuperar configuração
ACC2003 XL2003 FP2003 PPT2003 WD2003

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 240794 - Última Revisão: 12/05/2015 15:43:47 - Revisão: 6.5

Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic for Applications 6.0, Microsoft Visual Basic for Applications 5.0, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition, Microsoft Access 2000 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Office FrontPage 2003, Microsoft FrontPage 2002 Standard Edition, Microsoft FrontPage 2000 Standard Edition, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition, Microsoft PowerPoint 2000 Standard Edition, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbautomation kbhowto kbregistry KB240794 KbMtpt
Comentários