如何从nsis中的注册表中获取已安装程序的路径?

时间:2012-12-18 12:17:00

标签: nsis

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

1 个答案:

答案 0 :(得分:1)

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

您可以使用它来找到uninstall.exe

您还可以在安装时编写几个键来配置Windows“添加/删除程序”,然后可以通过UninstallString注册表值找到unistaller:

!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"'