Não uso o Office da M$, mas seria uma rotina melhor se você capturar via "Registro do Windows", lá você encontra a versão do Office instalada, o local (path), o nome do executável, os plugins instalados, os recursos existentes e várias outras informações úteis. Não há uma rotina específica, basta conhecer como se usa o TRegistry e (para quem tem o Office instalado) buscar as chaves e valores a ser capturados. O bom seria pegar uma versão 6,7 etc.. pois a cada nova versão pode ser que mude algumas chaves do Registry. Para pegar a versão, a melhor maneira foi a que o Rodinei passou.
blz Carlos escreveu: > > > Senhores, bom dia! > Quero agradecer de coração as sugestões e informar que resolvi meu > problema com uma solução caseira...(POG), por favor compreendam. > Como o recurso é mais um "Suvenir", então fiz da seguinde forma: > Criei uma função que verifica a existencia do diretório do office: > > function TdmCadastro.versaoOffice(mExec:string): PAnsiChar; > var > mTexto: AnsiString; > mResult: PAnsiChar; > begin > if DirectoryExists('C:\Arquivos de programas\Microsoft > Office\OFFICE9') then > begin > mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE9\' + mExec; > Result := PAnsiChar(mTexto); > Exit; > end; > if DirectoryExists('C:\Arquivos de programas\Microsoft > Office\OFFICE10') then > begin > mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE10\' + mExec; > Result := PAnsiChar(mTexto); > Exit; > end; > if DirectoryExists('C:\Arquivos de programas\Microsoft > Office\OFFICE11') then > begin > mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE11\' + mExec; > Result := PAnsiChar(mTexto); > Exit; > end; > if DirectoryExists('C:\Arquivos de programas\Microsoft > Office\OFFICE12') then > begin > mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE12\' + mExec; > Result := PAnsiChar(mTexto); > Exit; > end; > if DirectoryExists('C:\Arquivos de programas\Microsoft > Office\OFFICE13') then > begin > mTexto := 'C:\Arquivos de programas\Microsoft Office\OFFICE13\' + mExec; > Result := PAnsiChar(mTexto); > Exit; > end; > end; > > e depois a chamo do meu form: > winExec(dmCadastro.versaoOffice('Excel.exe'), SW_MAXIMIZE); > > No caso, se vc quiser a versão mais recente, é só colocar em ordem > decrescente, coisa que não preciso, pois na empresa, só tem um Office > por máquina, e todas só têm uma partição. (empresa pública). > > Fraterno abraço a todos e espero que seja útil, mas aceito > contribuição para melhorar o existente... > > Carlos > > . > >