Определить, установлен ли Adobe Reader с использованием кода VB - PullRequest
3 голосов
/ 04 ноября 2008

Я хочу определить, установлен ли Adobe Reader с использованием VB6. Также, если обнаружено, что оно не установлено, какое решение будет лучшим?

Ответы [ 3 ]

1 голос
/ 07 декабря 2008

Откройте «HKEY_LOCAL_MACHINE \ SOFTWARE \ Adobe \ Acrobat Reader» и перечислите его подразделы. Таким образом вы получаете номера версий установленных на этом компьютере «Adobe Reader» (ранее «Acrobat Reader»).

Вы также можете взглянуть на http://pdftohtml.sourceforge.net/ Если вы не можете найти приложение, которое может анализировать PDF-файлы, вы также можете преобразовать его в html и получить к нему доступ через веб-браузер, который доступен в большинстве операционных систем.

1 голос
/ 14 ноября 2008

Есть грубые способы (проверка файлов в каталоге Program Files), но я бы порекомендовал вам объявить функции полного реестра (не getSetting из vb), как в http://www.windowsdevcenter.com/pub/a/windows/2004/06/15/VB_Registry_Keys.html и получить

HKEY_CLASSES_ROOT \ * .pdf 1006 *

Если это так, то есть что-то, способное читать PDF-файлы (что вам нужно, верно?).

В качестве бонуса, HKEY_CLASSES_ROOT \ .pdf \ OpenWithList имеет список (вау) зарегистрированных приложений, открывающих файлы .pdf ... имена ключей в этом списке - программы, которые вы можете вызывать из vb с помощью shell ("start" + OpenAppName)

0 голосов
/ 16 февраля 2009

Я бы проверил в

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

Перейдя по этому списку, вы получите все установленные программы. Поиск записей реестра для конкретных приложений, как правило, будет работать, но иногда при удалении приложения они остаются позади.

Class Root хорош для отображения, если установлен какой-либо PDF Reader.

Кроме того, если вы просто хотите использовать приложение по умолчанию для обработки PDF-файлов, вы можете сообщить нам следующее. (Это в VBScript, но оно должно работать на VB6)

File = <PDF FILE HERE>
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Chr(34) & File & Chr(34)

Ответ на комментарий

Есть несколько способов получить доступ к реестру в vb6, RegRead - один из них. WMI - это другой способ. Я бы использовал WMI, так как вы можете легко перечислять подключи.

В чтении HKEY_CLASSES_ROOT нет ничего плохого, но если вы просто собираетесь запустить обработчик pdf по умолчанию, почему бы просто не запустить его с помощью команды WshShell.Run, приведенной выше? Вы выполняете то же самое с одним меньшим шагом.

...