none
Установлена ли программа

    Вопрос

  • Как можно в C# проверить установлена ли та или иная программа? Например у меня есть такой список программ:

    - Opera 10.50

    - FireFox 4.0

    - VS 2010

    - AIMP 3

    - Adobe Photoshop CS5

    По которому нужно проверить: установлена ли программа, если да, то версию её и если есть новая, то вывести: "Есть новая версия этой программы", а если не установлена, то "Эта программа не установлена".

    Как это можно сделать? Для начала хотя бы разобраться как проверить установлена ли, а потом уже и сравнения версии. Второе не так сложно, а первая даже не представляю как делать.

    12 марта 2011 г. 12:00

Ответы

  • Ищем нужное в ветке HKEY_LOCKAL_MACHINE\SOFTWARE, так же еще заглядываем сюда: HKEY_CURRENT_USER\Software. Там выбираем компанию-разработчик, а в ней ищем интересующий продукт. Далее ищем в гугле любую понятную Вам статью по работе с реестром на интересующем Вас языке и делаем проверку соответствующих веток в реестре.
    Blog: svyatoslavpankratov.blogspot.com
    12 марта 2011 г. 12:52
  • Нашел хорошее решение данной проблемы)

    http://modusponens.info/2011/03/installed-programms-c-sharp/

    12 марта 2011 г. 14:53

Все ответы

  • Все корректно установленные программы прописываются в реестре. Так что надо всего лишь проверить наличие этой ветки там.

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


    Blog: svyatoslavpankratov.blogspot.com
    12 марта 2011 г. 12:33
  • А как бы Вы проверяли через реестр? А то я совсем писанины на C# и был переключился на написание сайтов, и уже много чего позабыл QQ

    Открыл реестр, а там два раздела с программами: HKEY_LOCAL_MACHINE\SOFTWARE и HKEY_CURRENT_USER\Software

    В первом в некоторых папках с программами по-находил REG_SZ с именами "Installer", "InstallStatus" и значениями "yes" и "Installed", но чувствую, что это вообще не то, что мне надо.

    12 марта 2011 г. 12:44
  • Ищем нужное в ветке HKEY_LOCKAL_MACHINE\SOFTWARE, так же еще заглядываем сюда: HKEY_CURRENT_USER\Software. Там выбираем компанию-разработчик, а в ней ищем интересующий продукт. Далее ищем в гугле любую понятную Вам статью по работе с реестром на интересующем Вас языке и делаем проверку соответствующих веток в реестре.
    Blog: svyatoslavpankratov.blogspot.com
    12 марта 2011 г. 12:52
  • Если ветка с интересующим продуктом есть, то продукт установлен на ПК. Но это не всегда так. Достаточно много случаев некорректного удаления.
    Blog: svyatoslavpankratov.blogspot.com
    12 марта 2011 г. 12:57
  • Спасибо, на данный момент лучший ответ)) Почитаю статьи, если что-то будет не ясно - обязательно напишу сюда) Ещё раз огромное спасибо)
    12 марта 2011 г. 12:58
  • >>Если ветка с интересующим продуктом есть, то продукт установлен на ПК. Но это не всегда так. Достаточно много случаев некорректного удаления.

    Спасибо, учту это)

    12 марта 2011 г. 13:05
  • Нашел хорошее решение данной проблемы)

    http://modusponens.info/2011/03/installed-programms-c-sharp/

    12 марта 2011 г. 14:53
  • Нашел хорошее решение данной проблемы)

    http://modusponens.info/2011/03/installed-programms-c-sharp/

    ссылка изменилась
    http://modusponens.info/c-spisok-ustanovlennyx-programm/
    17 февраля 2017 г. 12:39