最新消息:

NSIS 检测程序版本号、注册表的写入与读取实例 (学习二)

nsis 永恒心锁 2199浏览 0评论
!define PRODUCT_NAME "pkpm"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "My company, Inc."
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_INSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Install\${PRODUCT_NAME}"

!define PRODUCT_UNINST_ROOT_KEY "HKLM"
#检查程序的版本号
Function CompareVersion

#使用读取注册表检测版本号
ReadRegStr $0 HKLM ${PRODUCT_INSTALL_KEY} "Version"   ;PRODUCT_VERSION      ;用户变量(输出) 根键 子键 项
${IF} $0 != ""
IntCmp ${PRODUCT_VERSION} $0 0 Old New
MessageBox MB_YESNO  "安装程序检测到 $PRODUCT_NAME 已经安装,是否覆盖安装" IDYES Y IDNO N
N:
Quit
Old:
MessageBox MB_ICONSTOP "安装程序检测到 $PRODUCT_NAME 已经安装了更新版本"
Quit
New:
MessageBox MB_ICONSTOP "安装程序检测到 $PRODUCT_NAME 已经安装了旧版本,继续更新安装"
${ENDIF}
Y:
FunctionEnd

#写入注册表的实例

WriteUninstaller "$INSTDIR\uninst.exe"  ;生成卸载exe,自动调用section Uninstall
WriteRegStr HKLM "${PRODUCT_INSTALL_KEY}" "Version" "${PRODUCT_VERSION}"   ; 根键 子键 项 值
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » NSIS 检测程序版本号、注册表的写入与读取实例 (学习二)

您必须 登录 才能发表评论!