2

如何从 nsis 的注册表中获取已安装程序的路径?我正在通过 readregistry 命令读取注册表并分配给一个变量。实际上我想找到我的 uninstall.exe 位置。

4

1 回答 1

1

如果您使用该InstallDirRegKey指令,您可以指定一个注册表项,该$INSTDIR目录将在其中保存以供将来使用。下次安装程序启动时会自动读取该密钥。

您可以使用它来定位uninstall.exe

UninstallString你也可以在安装的时候写几个key来配置windows的“添加/删除程序”,然后通过注册表值就可以找到卸载程序了:

!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\my_application"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}"  "DisplayName" "my_application Uninstaller"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}"  "DisplayIcon" "$INSTDIR\my_application.exe,0"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}"  "Publisher" "My company"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}"  "HelpTelephone" "555-123456"

WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"'
于 2012-12-18T13:30:16.803 回答