前段時間在做安裝程式時,需要自定義安裝介面代替傳統的打包工具製作的安裝介面。畢竟打包工具製作的介面定製麻煩也比較醜。我們可以使用第三方介面庫寫安裝程式,再在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...