国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

NSIS 安裝windows 安裝包(包括QT和MFC)

這篇具有很好參考價(jià)值的文章主要介紹了NSIS 安裝windows 安裝包(包括QT和MFC)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

NSIS(Nullsoft Scriptable Install System)是一個(gè)開(kāi)源的 Windows 系統(tǒng)下安裝程序制作程序。它提供了安裝、卸載、系統(tǒng)設(shè)置、文件解壓縮等功能。

基本概念

區(qū)段

是對(duì)應(yīng)某種安裝/卸載選項(xiàng)的處理邏輯,該段代碼僅當(dāng)用戶選擇相應(yīng)的選項(xiàng)才被執(zhí)行。卸載程序的區(qū)段名用"un."作為前綴。

/o表示該區(qū)段默認(rèn)不選上,-表示隱藏區(qū)段(匿名區(qū)段也是隱藏區(qū)段),!表示需要粗體顯示的區(qū)段。

Section "Installer Section"

SectionEnd ?

Section "un.Uninstaller Section"

SectionEnd

函數(shù)

在nsi腳本中函數(shù)分為兩種:用戶自定義函數(shù)和回調(diào)函數(shù)。

用戶自定義函數(shù)

Function <函數(shù)名>

?# some commands

FunctionEn

用戶自定義函數(shù)僅當(dāng)是Call指令調(diào)用時(shí)才被執(zhí)行

回調(diào)函數(shù)

回調(diào)函數(shù)則是由在特定的時(shí)間點(diǎn)觸發(fā)的程序段

安裝邏輯定義以下回調(diào)函數(shù)

.onGUIInit、.onInit、.onInstFailed、.onInstSuccess、.onGUIEnd、.onMouseOverSection、.onRebootFailed、.onSelChange、.onUserAbort、.onVerifyInstDir

卸載邏輯回調(diào)函數(shù)

un.onGUIInit、un.onInit、un.onUninstFailed、un.onUninstSuccess、un.onGUIEnd、un.onRebootFailed、un.onUserAbort

變量

var關(guān)鍵字來(lái)定義變量,使用$來(lái)引用變量

$INSTDIR
用戶定義的解壓路徑。
$PROGRAMFILES
程序文件目錄(通常為?C:Program Files?但是運(yùn)行時(shí)會(huì)檢測(cè))。

0-?9,?R0?-R9

腳本中定義了寄存器變量0-?9,?R0?-R9用于參數(shù)傳遞,以及系統(tǒng)變量用于特定用途。使用這些參數(shù)應(yīng)該通過(guò)PushPop的方式

$STARTMENU

開(kāi)始菜單目錄(常用于添加一個(gè)開(kāi)始菜單項(xiàng),使用 CreateShortCut)。該常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。

$SMPROGRAMS

開(kāi)始菜單程序目錄(當(dāng)你想定位 $STARTMENU程序 時(shí)可以使用它)。該常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。

$SMSTARTUP

開(kāi)始菜單程序/啟動(dòng) 目錄。該常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。

常用指令

File

作用:釋放文件到當(dāng)前輸出路徑。

如果使用了 /r 開(kāi)關(guān),匹配的文件將會(huì)在子目錄里被遞歸的搜索。

將ProjectFiles目錄下的所有文件釋放到輸出目。

SetOutPath "$INSTDIR"

SetOverwrite ifnewer

File /r "ProjectFiles*.*"

Delete

作用:從目標(biāo)系統(tǒng)刪除文件

Delete "$INSTDIR\uninst.exe"

RMDir

作用:刪除目錄

RMDir /r "$INSTDIR\*.*"

SetOutPath

作用:設(shè)置輸出路徑($OUTDIR)且當(dāng)路徑不存在時(shí)創(chuàng)建(需要時(shí)會(huì)遞歸創(chuàng)建)。必須為絕對(duì)路徑名,通常都使用?$INSTDIR。

將用戶定義的解壓路徑作為輸出目錄

SetOutPath $INSTDIR

CreateShortCut

作用:創(chuàng)建快捷文件.lnk?目標(biāo)文件

CreateShortCut "$SMPROGRAMS\PSC_FS\Uninstall.lnk" "$INSTDIR\uninst.exe"

WriteRegStr、WriteRegExpandStr

作用:把字符串寫入注冊(cè)表

根鍵如下:

HKLM?或HKEY_LOCAL_MACHINE

HKCU?或HKEY_CURRENT_USER

??WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"

??WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"

ReadRegStr

作用:讀取注冊(cè)表信息

ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{8d5fdf81-7022-423f-bd8b-b513a1050ae1}" "BundleVersion"

DeleteRegKey

作用:刪除一個(gè)注冊(cè)表鍵。

DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"

Exec

作用:這應(yīng)該算是常用的命令了,執(zhí)行一個(gè)指定的程序并且立即繼續(xù)安裝,就是直接執(zhí)行一個(gè)程序。

Exec "$INSTDIR\vc_redist.x86.exe ?/q" ??;若不存在,執(zhí)行靜默安裝??/q表示靜默安裝

ExecWait

作用:執(zhí)行一個(gè)指定的程序并且等待運(yùn)行處理結(jié)束。

Exec "$INSTDIR\vc_redist.x86.exe ?/q" ??;若不存在,執(zhí)行靜默安裝??/q表示靜默安裝

RegDLL

作用:載入指定的 DLL 并且調(diào)用 DllRegisterServer (或入口點(diǎn)名稱,當(dāng)指定之后)。其實(shí)就是注冊(cè)或加載你要的插件

!insertmacro

作用:插入宏

通過(guò)宏插入歡迎頁(yè)面

!insertmacro MUI_PAGE_WELCOME

StrCpy

作用:復(fù)制字符串

StrCpy $0 "a bbbbbbbb"

Push

作用:把一個(gè)字串壓入堆棧,該字串可隨后從堆棧里彈出。

Pop

作用:從堆棧里彈出一個(gè)字串到用戶變量?$x。如果堆棧是空的,則會(huì)置一個(gè)錯(cuò)誤標(biāo)記。

Goto

作用:跳轉(zhuǎn)到指定標(biāo)記

IfErrors?

錯(cuò)誤時(shí)跳轉(zhuǎn)到標(biāo)記?

IfErrors 0 VSRedistInstalled

MessageBox

作用:顯示一個(gè)包含“消息框文本”的消息框?!跋⒖蜻x項(xiàng)列表”必須為下面的一個(gè)或多個(gè),多個(gè)使用?|?來(lái)隔開(kāi)。

MB_OK -?顯示?OK?按鈕

MB_OKCANCEL -?顯示?OK?和取消按鈕

MB_ABORTRETRYIGNORE -?顯示退出、重試、忽略按鈕

MB_RETRYCANCEL -?顯示重試和取消按鈕

MB_YESNO -?顯示是和否按鈕

MB_YESNOCANCEL -?顯示是、否、取消按鈕

MB_ICONEXCLAMATION -?顯示驚嘆號(hào)圖標(biāo)

MB_ICONINFORMATION -?顯示信息圖標(biāo)

MB_ICONQUESTION -?顯示問(wèn)號(hào)圖標(biāo)

MB_ICONSTOP -?顯示終止圖標(biāo)

MB_TOPMOST -?使消息框在最前端顯示

MB_SETFOREGROUND -?設(shè)置前景

MB_RIGHT -?右對(duì)齊文本

MB_RTLREADING - RTL?閱讀次序

Function un.onInit

???Push $R3

???ClearErrors

???ReadRegStr $R3 ?${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "install"

???StrCmp $R3 "1" ?uninstallfinish

???MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您確實(shí)要完全移除 $(^Name) ,及其所有的組件?" \

???/SD IDYES \

???IDYES uninstallfinish \

???IDNO ?Abortuninstall

Abortuninstall:

????Abort

uninstallfinish:

???pop $R3

?FunctionEnd

NSIS工具安裝包下載

鏈接:https://pan.baidu.com/s/1ticaAl3T7kp4kJOwSTCxWA?
提取碼:xn2n

具體制作安裝包的過(guò)程參考:https://www.cnblogs.com/hi-gdl/p/12449912.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-812269.html

到了這里,關(guān)于NSIS 安裝windows 安裝包(包括QT和MFC)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包