最新消息:

制作软件升级安装包

nsis 永恒心锁 1883浏览 0评论

功能需求

我们要实现以下功能:

1、运行时检测注册表中是否有指定的安装路径,如果有,直接进入安装过程,如果没有,给一个提示。

2、运行时检测程序是否运行,如果正在运行则可以选择强制结束。

3、升级过程中实现解压文件、运行BAT等操作,且有进度条提示。

4、升级结束时打开升级说明以便用户查看。

文件释放

!define PRODUCT_NAME "永恒心锁"
!define PRODUCT_VERSION "1.0.0.1"
SetCompressor lzma
SetFont "tahoma" 8
RequestExecutionLevel admin
!include "MUI2.nsh"
!insertmacro MUI_LANGUAGE "SimpChinese"
Name "${PRODUCT_NAME}_升级_${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}_升级_${PRODUCT_VERSION}.exe"
InstallDirRegKey HKCU "Software永恒心锁" ""
Section "升级文件" SEC01
 SetDetailsPrint textonly
 DetailPrint "正在升级 ${PRODUCT_NAME},请单击关闭按钮完成升级!"
 SetDetailsPrint listonly
 SectionIn RO
 SetOutPath "$INSTDIR"
 SetOverwrite ifnewer
 ;升级文件
 File "Server永恒心锁.EXE"
 File "Server永恒心锁.bat"
 File "Server更新说明.txt"
 ;运行BTA
 nsExec::Exec "$INSTDIR永恒心锁.bat"
 ;指定以记事本打开说明
 Exec '"$SYSDIRnotepad.exe" "$INSTDIR更新说明.txt"'
SectionEnd

单例模式 第二步:禁止重复运行

Function .Oninit
InitPluginsDir
 ;创建互斥防止重复运行
 System::Call 'kernel32::CreateMutexA(i 0, i 0, t "永恒心锁") i .r1 ?e'
 Pop $R0
 StrCmp $R0 0 +3
 MessageBox MB_OK|MB_ICONEXCLAMATION "有一个 ${PRODUCT_NAME} 升级程序已经运行!"
 Abort
FunctionEnd
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » 制作软件升级安装包

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