NSIS 基於QT的自定義安裝介面

2021-09-12 18:35:17 字數 1886 閱讀 8498

前段時間在做安裝程式時,需要自定義安裝介面代替傳統的打包工具製作的安裝介面。畢竟打包工具製作的介面定製麻煩也比較醜。我們可以使用第三方介面庫寫安裝程式,再在nsis指令碼中呼叫即可。

採用nsis + qt 製作安裝程式實際上就是使用qt製作安裝程式,而nsis僅僅將製作的安裝程式打包成乙個exe。

1.核心nsis指令碼

;這次是打包生成exe的路徑

outfile $

;使用靜默安裝不出現任何nsis自帶的介面

silentinstall silent

function .oninit #nsis程式安裝準備工作

initpluginsdir #建立臨時目錄(記憶體)用於儲存一些必要的庫

setoutpath $pluginsdir #將檔案儲存在臨時目錄中

;打包的exe需要的檔案

;file "qt5gui.dll"

;file "qt5core.dll"

file /r "$"

functionend

function .oninstsuccess #安裝成功後呼叫

call fun

functionend

function fun

#當靜默安裝成功之後,會呼叫我們自己寫的安裝介面程式

#這樣就實現了我們自定義安裝介面程式

execwait $pluginsdir\nimostreamerinstall.exe #呼叫qt安裝程式,等待其執行完後執行下一條語句

rmdir $pluginsdir #釋放臨時目錄(記憶體)

functionend

section

sectionend

2.nsis簡單使用

2.1 nsis指令碼編譯以及編寫

nisedit 是nsis指令碼的視覺化編輯器,[nsis打包程式]

2.2 傳遞引數

使用nsis指令碼時,定義的變數可以通過命令列引數傳遞進去,傳遞形式「-d變數名=值」

例如傳遞上面指令碼中的自定義變數名稱:

makensis.exe /dpack_dir="e:\\package\\release_x86\\" -dtheoutfile="e:\\nimostreamer.exe" nimopc.nsi
2.3 nsis新增公司資訊、版本資訊
;!define pathtofile "c:\\thisis\\file"

!insertmacro mui_language "simpchinese"

viproductversion "1.0.0.0" ;must be x.x.x.x

viaddversionkey /lang=$ filedescription "nimostreamer"

viaddversionkey /lang=$ fileversion "1.0.0"

viaddversionkey /lang=$ productname "nimostreamer"

viaddversionkey /lang=$ productversion "$"

viaddversionkey /lang=$ companyname "huya"

3.nsis + qt製作的安裝介面

4.參考鏈結

[nsis + qt 做安裝解除安裝程式]

NSIS自定義dll擴充套件

nsis是乙個功能強大的安裝解除安裝包製作工具,通過dll可以擴充套件很多功能,你也可以自定義乙個dll,以下是具體步驟 1.1 新增對nsis庫的引用 在hello.cpp中宣告對nsis庫的引用 hello.cpp 定義 dll 的初始化例程。include stdafx.h include h...

實現自定義Silverlight的安裝介面

silverlight 在客戶端的安裝方式有兩種,一種是直接的,一種是間接,當你使用silverlight建立了站點或者程式的時候,你可以使用inplaceinstallprompt屬性在建立物件的時候來進行定製.實現自定義安裝silverlight外掛程式 function createsilve...

springsecurity自定義登入介面

第 4 章 自定義登陸頁面 部分 i.基礎篇 spring security雖然預設提供了乙個登陸頁面,但是這個頁面實在太簡陋了,只有在快速演示時才有可能它做系統的登陸頁面,實際開發時無論是從美觀還是實用性角度考慮,我們都必須實現自定義的登入頁面。ch04 src main resources we...