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