1. 程式人生 > >第一次使用Inno Setup打包程式初記

第一次使用Inno Setup打包程式初記

在平時的工作中,需要將自己寫的程式碼或者完成的程式打包成安裝包供使用者安裝使用。所以首先我將自己對打包和安裝這倆個過程進行簡單,粗略的理解。

  • 打包:
    1,壓縮程式執行所需要的檔案
    2,編寫安裝程式整個過程的指令碼

  • 安裝
    1,解壓縮
    2,執行前面編寫的指令碼

Inno Setup介紹:
Inno Setup是一個免費的安裝製作軟體,小巧、簡便、精美是其最大特點,支援pascal指令碼,能快速製作出標準Windows2000風格的安裝介面,足以完成一般安裝任務。
大小隻有1.9M
這裡寫圖片描述

Inno Setup目錄常量
{app}
應用程式目錄,這是使用者在安裝嚮導的選擇安裝目錄頁裡面所選擇的。
例如:如果你使用了 {app}\MYPROG.EXE 作為一項並且使用者選擇了“C:\MYPROG”作為應用程式的目錄,那麼安裝程式就會將它轉換成“C:\MYPROG\MYPROG.EXE”。

{win}
系統的 Windows 目錄。 例如:如果你使用了 {win}\MYPROG.INI 作為一項並且系統的 Windows 目錄是“C:\WINDOWS”,那麼安裝程式就會將它轉換成“C:\WINDOWS\MYPROG.INI”。

{sys}
系統的 Windows 系統(System)目錄(在 Windows NT/2000 下是 System32)。 例如:如果你使用了 {sys}\CTL3D32.DLL 作為一項並且系統的 Windows 系統目錄是“C:\WINDOWS\SYSTEM”,那麼安裝程式就會將它轉換成“C:\WINDOWS\SYSTEM\CTL3D32.DLL”。

{src}
這個資料夾指向安裝程式所在的位置。
例如:如果你使用了 {src}\MYPROG.EXE 作為一項並且使用者是從“S:\ ”安裝的,那麼安裝程式就會將它轉換成“S:\MYPROG.EXE”。

{sd}
系統驅動器,它是指 Windows 被安裝到的那個驅動器,典型的是“C:”,對於 Windows NT/2000,這個常量同系統的環境變數“SystemDrive”是等效的。

{pf}
程式資料夾(Program Files),這個路徑是系統的 Program Files 目錄,典型的是“C:\Program Files”。

{cf}
公共資料夾(Common Files),這個路徑是系統的 Common Files 資料夾,典型的是“C:\Program Files\Common Files”。

{tmp}
臨時目錄,這個目錄並不是使用者的 TEMP 環境變數指向的目錄,而是安裝程式在啟動時在使用者的臨時目錄下建立的一個子目錄(它有一個類似於“C:\WINDOWS\TEMP\IS-xxxxx.tmp”這樣的名字),在安裝程式退出時所有的檔案和子目錄將會被刪除。對於在 [Run] 段裡面要被執行且在安裝以後又不需要的程式檔案來說這個功能是非常有用的。

{fonts}
字型目錄,在 Windows 95/NT 4+ 下有一個專門為字型設立的目錄(通常這個目錄在 Windows 目錄下且被命名為“FONTS”),這個常量就指向這個目錄。對於 Windows NT 3.51,這個常量是和 {sys} 等效的,因為當時還沒有字型目錄。

{dao}
DAO 目錄,當安裝程式執行在 Windows 95/NT 4+ 上時,它被等效為 {cf}\Microsoft Shared\DAO,當運行於 Windows NT 3.51 時,它被等效為 {win}\MSAPPS\DAO.

外殼(Shell)資料夾常量
Inno Setup 還支援另外一套目錄常量,這就是涉及到的外殼(shell)資料夾常量,它們具有和其它的目錄常量相同的使用方法。然而,如果在指令碼的 [Setup] 段裡面放入了 MinVersion=4,3.51 這一行來表示允許支援 NT 3.51,那麼將只有 {group} 這個外殼資料夾常量能被使用,並籤只能用在 [Icons] 段。
下面的包含了“user”的常量涉及到當前登陸的使用者私人文件(profile),而帶有“common”的常量會涉及到全部使用者(All Users)的私人文件(profile)。當安裝程式執行在 Windows NT/2000 作業系統下並且使用者不具有管理員的許可權時,所有的帶有“common”的常量會強迫同帶有“user”的常量等效。
* 標記表示帶有“common”的常量在 Windows 9x 作業系統下同帶有“user”的常量等效。
{group}
程式組的路徑,取決於使用者在安裝程式嚮導的“選擇程式組”頁的選擇。對於 Windows NT,這個資料夾始終被建立在所有使用者的私人文件(All Users profile),除非使用者正在安裝的這個應用程式不具有管理員的許可權,那麼在這種情況下它將被建立在使用者的私人文件中(profile).

{sendto}
當前使用者的“傳送”的路徑。(沒有公共的“傳送”資料夾。)

{userappdata} & {commonappdata}
應用程式資料(Application Data)資料夾的路徑。

{userdesktop} & {commondesktop} *
桌面資料夾的路徑,推薦桌面快捷方式使用 {userdesktop}.

{userdocs} & {commondocs}
“我的文件”資料夾的路徑(或者對於 NT 4.0,是指私人資料夾).

{userfavorites} & {commonfavorites}
“收藏夾”的路徑,這個常量的使用方法是需要 MinVersion 的設定至少為“4.1, 4”,目前只有 Windows 2000 支援 {commonfavorites},如果使用的是在這之前的版本的 Windows,那麼它將會被轉換成和{userfavorites} 相同的目錄。

{userprograms} & {commonprograms} *
在開始選單裡面的程式資料夾的路徑。

{userstartmenu} & {commonstartmenu} *
開始選單的定級路徑。

{userstartup} & {commonstartup} *
開始選單裡面的啟動資料夾的路徑。

{usertemplates} & {commontemplates}
模板(Templates)資料夾的路徑,目前只有 Windows 2000 支援 {commontemplates},如果使用的是在這之前的版本的 Windows ,它將會被轉換成和{usertemplates} 相同的目錄。

其他的常量
{\}
一個反斜槓字元,請參見本頁前面提到的關於常量 {} 和單字元 \ 在使用上有何不同的說明。

{%NAME}
內嵌一個環境變數,這個 NAME 是要使用的環境變數的名字。如果在使用者的系統當中指定的環境變數不存在,這個常量就會被一個空的字串所替代。

{computername}
安裝程式正在執行的計算機的名稱(就是“GetComputerName”函式的返回值)。

{groupname}
使用者在安裝程式嚮導的選擇程式組頁選擇的程式組的名稱,這個是不同於 {group} 的,它不包括路徑。

{hwnd}
(專門用途)傳送安裝程式背景視窗的視窗控制代碼。

{reg:HKxx\SubkeyName,ValueName|DefaultValue}
內嵌一個登錄檔值。
HKxx 指定根鍵(root key),參見 [Registry] 段 文件所列出的根鍵。
SubkeyName 指定要讀取的子鍵的名稱。
ValueName 指定要讀取的值的名稱,要讀取一個鍵的預設值就讓 ValueName 為空。
DefaultValue 如果指定的登錄檔值不存在或者它不是一個字串型別(REG_SZ 或者 REG_EXPAND_SZ),則嵌入這個值。
如果你希望包括一個逗號,豎線(字元“|”)或大括號閉弧“}”在常量裡面,你必須通過“%-編碼” 形式用“%”後緊跟一個兩位的16進位制程式碼轉譯後替換原來的字元,一個逗號是“%2c”,一個豎線符是“%7c”,一個大括號閉弧是“%7d”。
DefaultValue 可以包括常量,然而,如上所訴內嵌的常量的大括號的閉弧(“}”) 必須被改成“%7d”才可以。

{srcexe}
安裝程式的檔名全稱(包括全程路徑和檔名),例如“C:\SETUP.EXE”。

{username}
執行安裝程式的使用者的名稱(函式 GetUserName 的返回值)。

以上是Inno Setup常用的一些常量;