NSIS 創(chuàng)建的安裝程序可以進行安裝、卸載、設(shè)置系統(tǒng)設(shè)置、解壓文件等等。幾乎可以做所有事情。因為它基于腳本文件,所以您可以完全控制您的安裝程序的每個部分。它的腳本語言支持變量、函數(shù)、字串處理,就像是一個普通的程序語言 - 但其僅設(shè)計用來創(chuàng)建安裝程序。
PortableApps Launcher的主要對象無非是注冊表項與文件,而處理這些,正是NSIS的長項。NSIS語言簡明易懂,特別擅長處理windows系統(tǒng)中的進程、注冊表與文件。以下以PotPlayer Portable為例,淺談使用NSIS制作便攜軟件的一般流程。
通過虛擬機觀察得知,當(dāng)PotPlayerMini.exe同目錄存在PotPlayerMini.ini時,PotPlayer將配置保存在此ini中,否則,則將配置保存在注冊表中。
因此,我們可以有兩種選擇:讓PotPlayer保存配置在注冊表,并在結(jié)束時導(dǎo)出為reg文件;或者保證其運行時目錄下存在PotPlayerMini.ini,在結(jié)束后將PotPlayerMini.ini移至 Data 目錄(程序與配置分離原則)。后一種選擇的優(yōu)點是,PotPlayer Portable 可以與系統(tǒng)中安裝的PotPlayer 或其它位置的PotPlayer Portable 同時運行,不會互相干擾。因此我選擇了保存配置進 ini 的方案。
另外,我希望PotPlayer Portable首次運行時顯示XMP-Gray-Tab 這個皮膚,而不是默認的棒子文皮膚。因此,需要創(chuàng)建一個DefaultData。
創(chuàng)建 PotPlayerPortable 文件夾,創(chuàng)建 App\AppInfo ,App\DefaultData , App\PotPlayer ,Sources 。如右圖。
將PotPlayer 程序文件放在 App\PotPlayer 目錄中。
在 App\DefaultData 中創(chuàng)建 PotPlayerMini.ini ,寫入:
[Settings]
LastSkinName=[smilefly]XMP-Gray-Tab.dsf ;定義默認皮膚
提取 PotPlayer 圖標,保存為:App\AppInfo\appicon.ico 。
在 Source\中創(chuàng)建 PotPlayerPortable.nsi ,開始敲代碼吧。以下分為3段講解這個nsi文件。
將固定的文件、注冊表項以變量的形式在文件頭部聲明,不但可以少敲些文字,也有利于減少筆誤。
- PC官方版
- 安卓官方手機版
- IOS官方手機版