Windows软件打包方法
生活随笔
收集整理的這篇文章主要介紹了
Windows软件打包方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
NSIS腳本
NSIS(Nullsoft Scriptable Install System)的開(kāi)源的Windows系統(tǒng)下的安裝程序制作工具,它提供了安裝、卸載、系統(tǒng)設(shè)置、文件壓縮等等功能,通過(guò)NSIS腳本語(yǔ)言來(lái)涉及安裝程序設(shè)計(jì)。
- NSIS 打包腳本基礎(chǔ)
- NSIS進(jìn)階教程
相關(guān)工具
- HM NIS Edit
- NSIS: Nullsoft Scriptable Install System
基本語(yǔ)法
變量
nsi腳本用var來(lái)定義變量,使用$來(lái)進(jìn)行引用,除了用戶自定義的變量(全局)外,nsi腳本中定義了寄存器變量0~9,R0~R9用于參數(shù)傳遞,以及系統(tǒng)變量用于特定用途,這些變量主要有:
| $INSTDIR | 用戶定義的解壓路徑 |
| $PROGRAMFILES | 程序文件目錄(通常為 C:\Program Files 但是運(yùn)行時(shí)會(huì)檢測(cè))。 |
| $COMMONFILES | 公用文件目錄。這是應(yīng)用程序共享組件的目錄(通常為 C:\Program Files\Common Files 但是運(yùn)行時(shí)會(huì)檢測(cè))。 |
| $DESKTOP | Windows 桌面目錄(通常為 C:\windows\desktop 但是運(yùn)行時(shí)會(huì)檢測(cè))。該常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| ${NSISDIR} | NSIS安裝目錄,編譯時(shí)會(huì)檢測(cè)到 |
| $WINDIR | Windows目錄(通常為C:\windows,在運(yùn)行時(shí)會(huì)檢測(cè)) |
| $SYSDIR | Windows 系統(tǒng)目錄(通常為 C:\windows\system,在運(yùn)行時(shí)會(huì)檢測(cè)) |
| $TEMP | 系統(tǒng)臨時(shí)目錄(通常為 C:\windows\temp,運(yùn)行時(shí)會(huì)檢測(cè)) |
| $SMPROGRAMS | 開(kāi)始菜單程序目錄,使用CreateShortCut來(lái)創(chuàng)建快捷方式。該常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| $SENDTO | 該目錄包含了“發(fā)送到”菜單快捷項(xiàng)。 |
| $RECENT | 該目錄包含了指向用戶最近文檔的快捷方式。 |
| $FAVORITES | 該目錄包含了指向用戶網(wǎng)絡(luò)收藏夾、文檔等的快捷方式。這個(gè)常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| $MUSIC | 用戶的音樂(lè)文件目錄。這個(gè)常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| $PICTURES | 用戶的圖片目錄。這個(gè)常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| $VIDEOS | 用戶的視頻文件目錄。這個(gè)常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| $FONTS | 系統(tǒng)字體目錄。 |
| $TEMPLATES | 文檔模板目錄。這個(gè)常量的內(nèi)容(所有用戶或當(dāng)前用戶)取決于 SetShellVarContext 設(shè)置。默認(rèn)為當(dāng)前用戶。 |
| $APPDATA | |
| $COOKIES | Internet Explorer 的 Cookies 目錄。 |
| $HISTORY | Internet Explorer 的歷史記錄目錄。 |
| $RESOURCES | 該資源目錄保存了主題和其他 Windows 資源(通常為 C:\Windows\Resources 但在運(yùn)行時(shí)會(huì)檢測(cè)),Windows XP 及以上有效 |
常用命令
- !include
- 作用:包含頭文件
- !include "MUI.nsh"
- !insertmacro
- 作用:插入宏
- !insertmacro MUI_PAGE_WELCOME
- Goto
- 作用:跳轉(zhuǎn)到指定標(biāo)記。[+-][1-9],加號(hào)表示從當(dāng)前位置往前跳轉(zhuǎn),減號(hào)則表示從當(dāng)前位置往后跳轉(zhuǎn)。數(shù)字表示跳轉(zhuǎn)的語(yǔ)句條數(shù)。
- Goto +4 ;跳轉(zhuǎn)以下4條語(yǔ)句 Goto -3 ; 跳轉(zhuǎn)到前3條語(yǔ)句
- File
- 作用:釋放文件到當(dāng)前輸出路徑
- 參數(shù)
- /r 目錄匹配的所有的內(nèi)容進(jìn)行遞歸添加,而且目錄結(jié)構(gòu)也會(huì)保持。
- /x 排除文件或目錄
- /a 保持被添加的文件的屬性
- /nonfatal 當(dāng)文件未找到使用警告來(lái)代替錯(cuò)誤
- File /r *.*
- Delete
- 作用:刪除文件
- Delete "$INSTDIR\uninst.exe"
- RMDir
- 作用:刪除目錄
- RMDir "$INSTDIR"
- Rename
- 作用:文件重命名
- CreateShortCut
- 作用:創(chuàng)建快捷方式
- CreateShortCut “DESKTOP\Test.lnk”“DESKTOP\Test.lnk”“INSTDIR\Test.exe” “” “$INSTDIR\Resources\Picture\Icon\ Test.ico”
- CreateDirectory
- 作用:遞歸創(chuàng)建目錄。當(dāng)目錄不能創(chuàng)建時(shí)給出錯(cuò)誤標(biāo)記。
- CreateDirectory "$SMPROGRAMS\Log Download"
- StrCpy
- 作用:復(fù)制字符串
- StrCpy $0 "a bbbbbbbb" ;$0 = "a bbbbbbbb"
- StrCmp
- 作用:字符串比較,如果字符串1和字符串2相等則調(diào)轉(zhuǎn)到第一個(gè)標(biāo)記處,否則調(diào)轉(zhuǎn)到第二個(gè)標(biāo)記處。
- StrCmp a b fun1 fun2
- ReadRegDWORD
- 作用:讀取注冊(cè)表信息
- MessageBox
- 作用:顯示一個(gè)包含“消息框文本”的消息框。“消息框選項(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 閱讀次序
- MB_DEFBUTTON1 - 默認(rèn)為按鈕 1
- MB_DEFBUTTON2 - 默認(rèn)為按鈕 2
- MB_DEFBUTTON3 - 默認(rèn)為按鈕 3
- MB_DEFBUTTON4 - 默認(rèn)為按鈕 4
- 作用:顯示一個(gè)包含“消息框文本”的消息框。“消息框選項(xiàng)列表”必須為下面的一個(gè)或多個(gè),多個(gè)使用 | 來(lái)隔開(kāi)。
腳本實(shí)現(xiàn)
修改Head圖片
!define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "installheader.bmp"修改界面左側(cè)的圖片信息
!define MUI_WELCOMEFINISHPAGE_BITMAP "installheader.bmp"修改安裝和卸載圖標(biāo)
!define MUI_ICON "${NSISDIR}\install.ico" !define MUI_UNICON "${NSISDIR}\uninstall.ico"創(chuàng)建快捷方式
CreateShortCut "$SMPROGRAMS\Test\Test.lnk" "$INSTDIR\Test.exe"CreateShortCut "$DESKTOP\Test.lnk" "$INSTDIR\Test.exe"設(shè)置安裝界面語(yǔ)言
!insertmacro MUI_LANGUAGE "SimpChinese" ;簡(jiǎn)體中文 !insertmacro MUI_LANGUAGE "English" ;英文顯示安裝和卸載進(jìn)度
ShowInstDetails show ShowUnInstDetails show顯示消息框
Section "MainSection" SEC01SetOutPath "$INSTDIR"SetOverwrite ifnewerFile /r *.*MessageBox MB_OKCANCEL "OK | Cancel" SectionEnd總結(jié)
以上是生活随笔為你收集整理的Windows软件打包方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux上安装安卓厨房手机版,【图片】
- 下一篇: 从grub中引导进入windows7的启