Определить, установлен ли Adobe Reader с помощью кода VB

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


person Community    schedule 04.11.2008    source источник
comment
Это должен быть Adobe PDF Reader или вы ищете какой-нибудь PDF Viewer?   -  person dummy    schedule 06.06.2012


Ответы (3)


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

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

person bot47    schedule 07.12.2008

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

HKEY_CLASSES_ROOT \ .pdf

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

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

person jpinto3912    schedule 13.11.2008

Я бы проверил

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

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

Корень класса хорошо показывает, установлен ли какой-либо 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? Вы делаете то же самое, сделав на один шаг меньше.

person Rob Haupt    schedule 16.02.2009
comment
Но как получить доступ к реестру в vb (не .net)? Помимо этого, есть несколько возможностей ... ваши швы для меня немного далеко идущие, потому что в HKEY_CLASSES_ROOT \ вы можете получить все приложения / классы, подходящие для запуска / обработки документов. - person jpinto3912; 20.02.2009