NSIS 限制重复安装

我做的个安装程序,因执行文件在安装目录\bin下,导致安装后,再次安装$INSTDIR目录每次多加一个\bin  ( $INSTDIR为安装程序里所指定的目录),所以我限制了程序在安装前必须卸载。

第一步:

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

第二步:

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

 

 

xp: 添加安装路径到path
ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$0; $INSTDIR"
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment"

win7下 执行失败!

 

为此我没有让用户选择安装目录,也就是 程序会安装到默认的目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值