NSIS:禁止多次安装实例

时间:2020-11-29 16:41:18

原文 NSIS:禁止多次安装实例

为了防止用户重复安装软件,我们可以加入以下的判断来进行限制。

第一步:在安装脚本中,将是否已安装的标记Installed写入注册表中:

1 Section -Post
2   WriteRegDword HKLM "${PRODUCT_DIR_REGKEY}" "Installed" 1
3 SectionEnd

第二步:在.onInit 读取安装程序在安装过程中写入的注册表键值:

1 Function .onInit
2  ;禁止多次安装实例 start
3   ReadRegDWORD $0 HKLM '${PRODUCT_DIR_REGKEY}' "Installed"
4   IntCmp $0 +1 +4
5    MessageBox MB_OK|MB_USERICON '$(^Name) 已安装在计算机中。如需重新安装,请卸载已有的安装。'
6   Quit
7   nop
8  ;禁止多次安装实例 end
9 FunctionEnd