nsi学习之 重复安装给于提示覆盖 不可以重复安装

来源:互联网 发布:有趣的好友分组知乎 编辑:程序博客网 时间:2024/05/18 00:31

如果安装过改软件给于用户一个提示  是否退出


;定义一个常量

!define HKCU_PATH "Software\Helloworld"




Function .onInit 
;检测多次安装
ReadRegDWORD  $0 HKCU ${HKCU_PATH} "installed"

;意思是是$0是整型变量执行下一行代码,不是的话执行第四行代码
IntCmp $0 +1 +4 
MessageBox MB_YESNO  "$(^Name) 已安装在计算机中。是否覆盖安装?"  IDYES +3
Quit 
nop 

;禁止多次安装 end 
FunctionEnd


安装结束后把检测的变量写入注册表



Section -Post
  ; 写入安装的路径
  WriteRegStr HKCU ${HKCU_PATH} "installPath" $INSTDIR
SectionEnd


最后一步骤是把注册表删除

DeleteRegKey /ifempty HKCU ${HKCU_PATH}

删除的是注册表对应的目录,下面的所有变量都删除了