日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nsis升级包_NSIS制作软件升级安装包完整教程

發布時間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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制作软件升级安装包完整教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。