Какой самый надежный способ проверить установку Firefox? - PullRequest
5 голосов
/ 20 августа 2011

Я делаю программное обеспечение, которое идет в комплекте с расширением Firefox. В моем установочном скрипте я хочу указать пользователю, хочет ли он установить расширение. Но для этого мне нужно:

  1. Способ узнать, установлен ли Firefox или нет
  2. Способ узнать, какая версия Firefox установлена ​​

Как бы я сделал эти две вещи в InnoSetup или C #? Я попытался вручную проверить путь к каталогу установки Firefox по умолчанию или проверить наличие записей в реестре. Я думаю, что эти методы совсем не надежны.

Ответы [ 3 ]

6 голосов
/ 21 августа 2011

Рекомендуется проверить, существует ли ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox.Там будет подключ для каждой установленной версии.Если вы параноик, вы также можете проверить значение HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\<version>\Main\PathToExe - если этот файл существует, то Firefox действительно установлен, и вы не смотрите устаревший ключ реестра.

Обратите внимание, что вы можете обнаружить только Firefoxустановка только в том случае, если установщик действительно использовался.Вы всегда можете «установить» Firefox вручную, просто распаковав исполняемый файл установки с 7zip - в любой каталог.Ночные сборки также доступны в виде обычных zip-файлов, которые легче распаковать.Это будет прекрасно работать, но не добавит никаких ключей реестра, которые позволят вам найти эту установку.

4 голосов
/ 18 февраля 2014

Вот сокращенный список созданных ключей (при установке Firefox 27.0.1)

HKLM\SOFTWARE\Classes\FirefoxHTML\
HKLM\SOFTWARE\Classes\FirefoxURL\
HKLM\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe\
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe\Path
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 27.0.1 (x86 en-US)\
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe\
HKLM\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox\27.0.1 (en-US)\
HKLM\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox 27.0.1\
HKLM\SOFTWARE\Wow6432Node\Clients\StartMenuInternet\FIREFOX.EXE\

У одного из наших клиентов не было "Удалить", поэтому мы будем использовать другого из этого списка. Я собираюсь использовать: "Firefox установлен, когда существует хотя бы один из следующих ключей:"

HKLM\SOFTWARE\Mozilla\Mozilla Firefox\
HKLM\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\
HKLM\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox\
HKLM\SOFTWARE\Wow6432Node\Clients\StartMenuInternet\FIREFOX.EXE\
3 голосов
/ 24 июля 2013

Я думаю, HKLM\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE ключ не зависит от бит ОС, поэтому я предлагаю это.

...