我正在制作一个与firefox扩展捆绑在一起的软件。在我的安装脚本中,我想提示用户想要安装扩展程序的天气。但为此,我需要:
我如何在InnoSetup或C#中做这两件事?我尝试手动检查默认firefox安装目录的路径或检查注册表中的卸载记录。我认为这些方法根本不可靠。
答案 0 :(得分:6)
建议的方法是检查HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox
注册表项是否存在。每个已安装的版本都会有一个子项。如果您是偏执狂,您还可以检查值HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\<version>\Main\PathToExe
- 如果该文件存在,那么Firefox确实已安装,您不会查看过时的注册表项。
请注意,只有在实际使用安装程序时才能检测Firefox安装。您可以手动“安装”Firefox,只需将安装程序可执行文件与7zip解压缩到任何目录中即可。每晚构建也可作为常规zip文件提供,更易于打开包装。这将工作得很好但不会添加任何允许您找到此安装的注册表项。
答案 1 :(得分:3)
我认为HKLM\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE
密钥不依赖于OS位,所以我建议这样做。
答案 2 :(得分:3)
以下是已创建密钥的缩短列表(通过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\