nsis升级包_NSIS制作软件升级安装包完整教程
NSIS 是“Nullsoft 腳本安裝系統”(Nullsoft Scriptable Installation System) 的縮寫,它是一個免費的 Win32 安裝、卸載系統,采用了簡潔高效的腳本方式
NSIS 是“Nullsoft 腳本安裝系統”(Nullsoft Scriptable Installation System) 的縮寫,它是一個免費的 Win32 安裝、卸載系統,采用了簡潔高效的腳本方式
NSIS 是“Nullsoft 腳本安裝系統”(Nullsoft Scriptable Installation System) 的縮寫,它是一個免費的 Win32 安裝、卸載系統,采用了簡潔高效的腳本方式。它本來是一個由 Nullsoft 創建并用于作為 Winamp 及其插件發布的系統,但現已被上百個應用程序所應用,作為它們進行程序發布的工具。
相信不是每個人寫的軟件都只發布一次就可以了,肯定要有修改和維護的情況發生。在這種情況下,您可能就需要一個軟件的升級安裝包了。
現在,我們就來一步步把這個安裝包做出來。
NSIS下載地址:
前提:用戶已經使用我們的完整安裝包安裝過了,且已經在注冊表中記錄了安裝路徑。
在注冊表中寫入安裝路徑WriteRegStr HKCU "Software\無名智者作品系列" "" $INSTDIR
我們要實現以下功能:
1、運行時檢測注冊表中是否有指定的安裝路徑,如果有,直接進入安裝過程,如果沒有,給一個提示。
2、運行時檢測程序是否運行,如果正在運行則可以選擇強制結束。
3、升級過程中實現解壓文件、運行BAT等操作,且有進度條提示。
4、升級結束時打開升級說明以便用戶查看。
第一步:定義基本框架
"!define PRODUCT_NAME "a"!define PRODUCT_VERSION "1.0.0.1" SetCompressor lzmaSetFont "tahoma" 8RequestExecutionLevel admin !include "MUI2.nsh" !insertmacro MUI_LANGUAGE "SimpChinese" Name "${PRODUCT_NAME}_升級_${PRODUCT_VERSION}"OutFile "${PRODUCT_NAME}_升級_${PRODUCT_VERSION}.exe"InstallDirRegKey HKCU "Software\a" "" Section "升級文件" SEC01 SetDetailsPrint textonly DetailPrint "正在升級 ${PRODUCT_NAME},請單擊關閉按鈕完成升級!" SetDetailsPrint listonly SectionIn RO SetOutPath "$INSTDIR"SetOverwrite ifnewer ;升級文件File "a.EXE" File "Server\更新說明.txt" ;運行BTA nsExec::Exec "$INSTDIR\a.bat" ;指定以記事本打開說明 Exec '"$SYSDIR\notepad.exe" "$INSTDIR\更新說明.txt"' SectionEnd
如果沒有其他錯誤,這時候我們的升級程序就已經可以編譯了。
下面,我們繼續進行完善。
第二步:禁止重復運行
在.onInit區段加入以下代碼
InitPluginsDir ;創建互斥防止重復運行 System::Call 'kernel32::CreateMutexA(i 0, i 0, t "ainstaller") i .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_ICONEXCLAMATION "有一個 ${PRODUCT_NAME} 升級程序已經運行!" Abort
第三步:加入是否安裝判斷
我們通過檢測注冊中指定鍵值的方式來判斷軟件是否已經正確安裝。
在.onInit區段加入以下代碼
;判斷是否已安裝 ReadRegStr $0 HKCU "Software\a" "" StrCmp $0 "" 0 NoAbort MessageBox MB_OK|MB_ICONEXCLAMATION "您未正確安裝本軟件,不能使用此升級程序!" Abort ;退出安裝程序 NoAbort:
第四步:如果程序正在運行則關閉程序
在.onInit區段加入以下代碼
;關閉進程 Push $R0 CheckProc: Push "asc.exe" ProcessWork::existsprocess Pop $R0 IntCmp $R0 0 Done MessageBox MB_OKCANCEL|MB_ICONSTOP "升級程序檢測到 ${PRODUCT_NAME} 正在運行。$\r$\n$\r$\n點擊 “確定” 強制關閉${PRODUCT_NAME},繼續升級。$\r$\n點擊 “取消” 退出安裝程序。" IDCANCEL Exit Push "asc.exe" Processwork::KillProcess Sleep 1000 Goto CheckProc Exit: Abort Done: Pop $R0
這時我們會發現整個安裝程序還不是很美觀,那么我們繼續。
第五步:添加MUI
MUI,你懂的!
好,至此,,這個軟件升級包就大功告成了。
當然,你還可以在其中加入其他功能,比如更新卸載文件代碼、注冊DLL、設置壁紙、更改主題等,不過,輕狂勸你:這只是一個升級安裝包而已,沒必要搞得功能那么復雜吧!呵呵
總結
以上是生活随笔為你收集整理的nsis升级包_NSIS制作软件升级安装包完整教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杜比服务器系统安装,小编教你给Win10
- 下一篇: Windows下使用C++(Win32S