NSIS 安装程序:如何通过不同的安装程序获取先前安装的可执行文件的位置?
NSIS installer : how can i get location of executable installed earlier via different installer?
我正在使用 NSIS 为我的应用程序创建安装程序。但是,在 NSIS 安装程序的 运行 期间,我需要某些应用程序的路径(即 python )。我无法从 NSIS 找到一些直接的方法。
除非您对此有所了解,否则无法获取另一个应用程序的应用程序路径。如果它是以前的版本并且是您编写的,那么您应该在以前的安装程序中有它。否则您需要检查注册表以找到旧应用程序的独特之处,然后在您的 NSIS 脚本中使用它,或者直接询问用户。
他们的 documentation (*1) 说:
You can uninstall Boot2Docker using Window’s standard process for removing programs.
这意味着它必须向注册表中的卸载项写入一个条目。
他们 seem 正在使用 Inno Setup,如果我正确地解释了他们的脚本,那么卸载信息应该在 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{05BD04E9-4AB5-46AC-891E-60EA8FD57D56}_is1
中,您可以在其中读取 InstallLocation
值ReadRegStr
或解析 UninstallString
值,但您应该在 Regedit 中验证这一点。还要记住,如果此信息写入注册表的 64 位部分,则需要在 NSIS 脚本中使用 SetRegView
来读取它。
*1:链接到 archive.org 因为 Boot2Docker 已弃用。
我正在使用 NSIS 为我的应用程序创建安装程序。但是,在 NSIS 安装程序的 运行 期间,我需要某些应用程序的路径(即 python )。我无法从 NSIS 找到一些直接的方法。
除非您对此有所了解,否则无法获取另一个应用程序的应用程序路径。如果它是以前的版本并且是您编写的,那么您应该在以前的安装程序中有它。否则您需要检查注册表以找到旧应用程序的独特之处,然后在您的 NSIS 脚本中使用它,或者直接询问用户。
他们的 documentation (*1) 说:
You can uninstall Boot2Docker using Window’s standard process for removing programs.
这意味着它必须向注册表中的卸载项写入一个条目。
他们 seem 正在使用 Inno Setup,如果我正确地解释了他们的脚本,那么卸载信息应该在 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{05BD04E9-4AB5-46AC-891E-60EA8FD57D56}_is1
中,您可以在其中读取 InstallLocation
值ReadRegStr
或解析 UninstallString
值,但您应该在 Regedit 中验证这一点。还要记住,如果此信息写入注册表的 64 位部分,则需要在 NSIS 脚本中使用 SetRegView
来读取它。
*1:链接到 archive.org 因为 Boot2Docker 已弃用。