NSISI基本語法---變數
變數定義:var關鍵字來定義變數,使用$來引用變數;變數是全域性的並且是大小寫敏感的。
1、系統常用變數
變數 | $INSTDIR | $PROGRAMFILES | $COMMONFILES | $DESKTOP | $EXEDIR | ${NSISDIR} | $WINDIR |
---|---|---|---|---|---|---|---|
含義 | 使用者定義的解壓路徑 | 程式檔案目錄 | 公用檔案目錄 | Windows 桌面目錄預設為當前使用者 | 安裝程式執行時的位置。 | 包含 NSIS 安裝目錄的一個標記。…… | Windows 目錄
|
預設目錄 | C:\Program Files | C:\Program Files\Common Files | C:\windows\desktop | 常用於在你想呼叫一個在 NSIS 目錄下的資源時,例如:圖示、介面 | C:\windows 或 C:\winnt |
||
執行時檢測,適用OS | 是 | 是 | 是 | 是 | 是 | ||
變數 | $SYSDIR | $TEMP | $STARTMENU | $SMPROGRAMS | $SMSTARTUP | $QUICKLAUNCH | $DOCUMENTS |
含義 | Windows 系統目錄 | 系統臨時目錄 | 開始選單目錄 | 開始選單程式目錄 | 開始選單程式/啟動 目錄 | 文件目錄 | |
預設目錄 | C:\windows\system 或 C:\winnt\system32 |
C:\windows\temp | 取決於 SetShellVarContext 設定。 預設為當前使用者 |
同左 | 同左 | C:\Documents and Settings\Foo\My Documents | |
執行時檢測,適用OS | 是 | 是 | 在 IE4 活動桌面及以上的快速啟動目錄 | Windows 95 且 Internet Explorer 4 沒有安裝時無效。 | |||
變數 | $SENDTO | $RECENT | $FAVORITES | $MUSIC | $PICTURES | $VIDEOS | $NETHOOD |
含義 | 該目錄包含了“傳送到”選單快捷項 | 該目錄包含了指向使用者最近文件的快捷方式 | 該目錄包含了指向使用者網路收藏夾、文件等的快捷方式。 | 使用者的音樂檔案目錄 | 使用者的圖片目錄 | 使用者的視訊檔案目錄 | 該目錄包含了可能存在於我的網路位置、網路上的芳鄰資料夾的連結物件 |
預設目錄 | 同上 | 同左 | 同左 | 同左 | |||
執行時檢測,適用OS | 該常量在 Windows 95 且 Internet Explorer 4 沒有安裝時無效 | 僅在 Windows XP、ME 及以上才有效。 | 僅在 Windows 2000、XP、ME 及以上才有效。 | 該常量僅在 Windows XP、ME 及以上才有效。 | 在 Windows 95 且 Internet Explorer 4 和活動桌面沒有安裝時無效 | ||
變數 | $FONTS | $TEMPLATES | $APPDATA | $PRINTHOOD | $INTERNET_CACHE | $COOKIES | $HISTORY |
含義 | 系統字型目錄 | 文件模板目錄 | 應用程式資料目錄 | 該目錄包含了可能存在於印表機資料夾的連結物件 | Internet Explorer 的臨時檔案目錄。 | Interne tExplorer 的 Cookies 目錄。 |
Internet Explorer 的歷史記錄目錄 |
預設目錄 | 這個常量的內容(所有使用者或當前使用者)取決於 SetShellVarContext設定。預設為當前使用者 | 同左 |
|
||||
執行時檢測,適用OS | 在 Windows 95 且 Internet Explorer 4 和活動桌面沒有安裝時無效 | 在 Windows 95 和 Windows 98 上無效。 | 在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活動桌面沒有安裝時無效。 | 在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活動桌面沒有安裝時無效 | 量在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活動桌面沒有安裝時無效 | ||
變數 | $PROFILE | $ADMINTOOLS | $RESOURCES | $RESOURCES_LOCALIZED | $CDBURN_AREA | $HWNDPARENT | $PLUGINSDIR |
含義 | 使用者的個人配置目錄 | 一個儲存管理工具的目錄 | 該資源目錄儲存了主題和其他 Windows 資源 | 該本地的資源目錄儲存了主題和其他 Windows 資源 | 一個在燒錄 CD 時儲存檔案的目錄 | 父視窗的十進位制 HWND。 | 儲存給InstallOptions 使用的 INI 檔案、啟動畫面點陣圖或其他外掛執行需要的檔案 |
預設目錄 | C:\Documents and Settings\Foo | 這個常量的內容(所有使用者或當前使用者)取決於SetShellVarContext 設定。預設為當前使用者 | C:\Windows\Resources | C:\Windows\Resources\1033 | |||
執行時檢測,適用OS | 在 Windows 2000 及以上有效。 | 該常量在 Windows 2000、ME 及以上有效 | 是;該常量在 Windows XP 及以上有效 | 是;在 Windows XP 及以上有效。 | 在 Windows XP 及以上有效。 |
注:執行時檢測.,,沒有是預設為否,
適用OS未田表示,預設all;
對於這些變數:明白表達的是什麼意思,所指定的目錄是哪個就可以了其餘的可以忽略。
附:
“這個常量的內容(所有使用者或當前使用者)取決於SetShellVarContext 設定。預設為當前使用者”
看下賈老師的回答 :
NSIS 中部分變數可以通過一個環境設定命令 SetShellVarContext 來設定:
# 設定為當前使用者
SetShellVarContext current
# 此時 $DESKTOP 指向 C:\Users\Administrator\Desktop
# 設定為所有使用者
SetShellVarContext all
# 此時 $DESKTOP 指向 C:\Users\Public\Desktop
SetShellVarContext 會影響到如 $DESKTOP、$DOCUMENTS、$SMPROGRAMS、$APPDATA 等很多變數的值
(怎麼設定先不管,先繼續學習)
2、其他常用的系統變數
$ 0,$ 1,$ 2,$ 3,$ 4,$ 5,$ 6,$ 7,$ 8,$ 9,$ R0,$ R1,$ R2,$ R3,$ R4,$ R5,$ R6,$ R7,$ R8,$ R9 暫存器。
這些變數可以像使用者變數一樣使用,但通常用於共享函式或巨集。您不必宣告這些變數,因此在共享程式碼中使用它們時不會出現任何名稱衝突。在共享程式碼中使用這些變數時,建議您使用堆疊來儲存和恢復其原始值。這些變數也可用於與外掛進行通訊,因為它們可以由外掛DLL讀取和寫入
3、自定義變數
[/ GLOBAL] var_name
var variableName
參考文章: