Detectar se o leitor de adobe é instalado usando o código VB

Eu quero detectar se o leitor de adobe é instalado usando o VB6. Além disso, se for detectado que não está instalado, qual seria a melhor solução?

0
Tem que ser o Adobe PDF Reader ou você está procurando por anykind do PDF Viewer?
adicionado o autor dummy, fonte

3 Respostas

Há maneiras rudimentares (verificando arquivos no diretório de arquivos de Programas), mas eu recomendo que você declare funções de registro completo (não getSetting de vb) como em

0
adicionado

Acesse "HKEY_LOCAL_MACHINE \ SOFTWARE \ Adobe \ Acrobat Reader" e enumerar suas subchaves. Com isso, você obtém os versionnumbers das instalações do "Adobe Reader" (antigo "Acrobat Reader") existentes neste computador.

Você também pode dar uma olhada em http://pdftohtml.sourceforge.net/ Se você não consegue encontrar um aplicativo que é capaz de analisar arquivos PDF, você também pode convertê-lo em html e acessá-lo com um webbrowser, que está disponível na maioria dos sistemas operacionais.

0
adicionado

Gostaria de verificar no

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

Passando por essa lista, você terá todos os programas instalados. Procurar Entradas do Registro Específicas do Aplicativo normalmente funcionará, mas, ocasionalmente, ao desinstalar um aplicativo, ele as deixará para trás.

A raiz da classe é boa para mostrar se algum PDF Reader estiver instalado.

Além disso, se você quiser apenas usar o aplicativo padrão para lidar com PDFs, você pode usar o seguinte. (Isso está no VBScript, mas deve funcionar o mesmo no VB6)

File = 
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Chr(34) & File & Chr(34)

Resposta aos comentários

Existem algumas maneiras de acessar o registro em vb6, RegRead é um deles. WMI é outro caminho. Eu usaria o WMI desde que você pode enumerar subchaves facilmente.

Não há nada de errado com a leitura de HKEY_CLASSES_ROOT, mas se você fosse simplesmente iniciar o manipulador de pdf padrão, por que não apenas executá-lo com o comando WshShell.Run acima? Você está realizando a mesma coisa com um passo a menos.

0
adicionado
Mas como você acessa o registro em vb (não .net)? Passado isso, há várias possibilidades ... o seu parece-me um pouco longe, porque em HKEY_CLASSES_ROOT \ você pode recuperar todos os aplicativos/classes adequados para iniciar/manusear documentos.
adicionado o autor jpinto3912, fonte
comentários acima no post
adicionado o autor Rob Haupt, fonte