проверить установлен ли компонент
От: Kain81 Украина  
Дата: 21.09.05 17:09
Оценка:
Привет всем

Возник такой вопрос:
при запуске приложения (VB6) нужно проверить установлены ли некоторые программные продукты(компоненты). Может кто сталкивался с такой или похожей ситуацией, посоветуйте пути решения этой проблемы или кинте урлом.

З.Ы. Пробовал из реестра считывать (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) и проверять значения DisplayName для каждого ключа, но столкнулся с тем что некоторые ключи остаются после удаления программ.
Пользовался поиском, но не нашел нужного решения.
Спасибо за внимание.
Re: проверить установлен ли компонент
От: Janus Россия  
Дата: 21.09.05 19:34
Оценка: 2 (1) +1
Здравствуйте, Kain81, Вы писали:

K>Привет всем


K>Возник такой вопрос:

K>при запуске приложения (VB6) нужно проверить установлены ли некоторые программные продукты(компоненты). Может кто сталкивался с такой или похожей ситуацией, посоветуйте пути решения этой проблемы или кинте урлом.

K>З.Ы. Пробовал из реестра считывать (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) и проверять значения DisplayName для каждого ключа, но столкнулся с тем что некоторые ключи остаются после удаления программ.

K>Пользовался поиском, но не нашел нужного решения.
K>Спасибо за внимание.


Если программные продукты(компоненты) "понимают" COM
то через CreateObject() и обработать ошибку
... Хорошо уметь читать между строк. Это иногда
приносит большую пользу
Re: проверить установлен ли компонент
От: Аноним  
Дата: 22.09.05 05:19
Оценка:
Здравствуйте, Kain81, Вы писали:

K>З.Ы. Пробовал из реестра считывать (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) и проверять значения DisplayName для каждого ключа, но столкнулся с тем что некоторые ключи остаются после удаления программ.

K>Пользовался поиском, но не нашел нужного решения.

Если это ActiveX компонент и нам известны параметры образцового (GUID, Version, размер), то с помощью метода LoadRegTypeLib TLbInf32.dll считываем версию и размер имеющегося (если файл отсутствует то поймается ошибка). Сравниваем — если у имеющегося версия меньше чем у образца или отличается размер/контрольная сумма — устанавливаем и регистрим.

По крайней мере у меня именно так и делается уже несколько лет — никаких проблем не было вообще...
Если точнее, то сделана маленькая утилитка (обозвана Starter.exe) которая считывает ini-файл с сервера. В этой ini-шке прописаны все компоненты необходимые программе (включая ярлык, help-файлы, MDAC...), сравнивает их с имеющимися на компьютере, при необходимости загружает новые и регистрит, после чего стартует основную программу. Получилось все в итоге дюже удобно — мне достаточно один раз ее запустить чтобы программа установилась на клиентской машине — и не иметь вообще никаких проблем с ее обновлением.
Последнее что в нее добавил — это сверка контрольной суммы файлов (просто для большей защиты).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.