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

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

Это должен быть Adobe PDF Reader или вы ищете какой-нибудь PDF Viewer?

dummy 06.06.2012 13:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
6 273
3

Ответы 3

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

HKEY_CLASSES_ROOT \ .pdf

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

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

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

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

Я бы проверил

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? Вы делаете то же самое, сделав на один шаг меньше.

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

jpinto3912 20.02.2009 01:15

Другие вопросы по теме