Установлено ли приложение?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Установлено ли приложение?

Сообщение User2004 » 06.02.2005 (Вс) 18:10

Ситуация такая:
Пишу что-то типа Setup wizard,т.е. нужно установить какое-либо приложение.К примеру-MS Office :)
Как узнать,установлено ли оно уже и если да,то куда(путь к ехе-шнику)?
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 18:13

Каждый софт пишет себя в реестр по-своему :)
Смотри, куда пишет себя искомый софт, и читай потом это место в реестре.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.02.2005 (Вс) 20:16

Код: Выделить всё
res = InputBox("Приложение Microsoft Office установлено?")
Select Case UCase$(res)
  Case "ДА", "YES"
    res = InputBox("А куда оно установлено?")
    MsgBox "Приложение установлено в каталог '" & res & "'."
End Select


2 GSerg - иногда софт ничего не пишет в реестре. Тогда искать только рекурсией по каталогам.
Lasciate ogni speranza, voi ch'entrate.

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 20:43

Код: Выделить всё
res=InputBox("Приложение Microsoft Office установлено?")
Select Case UCase$(res)
  Case "ДА", "YES"
    MsgBox "Приложение установлено."
End Select


Это чё,прикол? :roll:
А если серьезно,можно кусок кода с рекурсивным просмотром реестра? :oops: Толко не посылайте меня в API (каламбур),плиз.
Я там все ноги переломал,а ничего не понял(см.фото) :roll:
Там все функции в один пример забабаханы-я врубиться не могу чё к чему :(
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 20:57

Код: Выделить всё
res = InputBox("Приложение Microsoft Office установлено?")
Select Case UCase$(res)
  Case "ДА", "YES"
    res = InputBox("А куда оно установлено?")
    MsgBox "Приложение установлено в каталог '" & res & "'."
End Select



Дело в том,что моя прога не знает кто и куда устанавливал MS Office.Может его на диск D засунули,но он уже есть! Так вот надо чтобы она второй офис не пыталась инсталлировать :?
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2005 (Вс) 21:03

Проверь HKEY_CLASSES_ROOT\Word.Application
Если такой ключ есть, то и Ворд стоит.
Изображение

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 21:43

Вообще-то у меня не только Ворд устанавливается.Там штук >=10 разных приложений.Вначале пользователь выбирает,какие из них надо установить,а прога запускает установщики согласно очереди. :)
А если её запустить ещё раз она по второму кругу их начнёт устанавливать.
Вот я и хочу,чтоб она проверяла,что уже стоит,а что нет :?

:?: А в реестре все приложения в одном ключе прописываются или кто куда захочет?
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2005 (Вс) 22:03

Кто куда.
GSerg это уже отметил в первом ответе.
Изображение

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 22:23

Тогда пардон за повтор :roll:
А можно кусок кода с рекурсивным просмотром реестра? Толко не посылайте меня в API (каламбур),плиз.
Я там все ноги переломал,а ничего не понял(см.фото)
Там все функции в один пример забабаханы-я врубиться не могу чё к чему
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 07.02.2005 (Пн) 2:29

Спасибо всем!
Код нашел зесь(если кому интересно):
http://www.freevbcode.com/source/Search_Registry.zip
Главное-наглядно :)
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 44

    TopList