原文出處:http://www.xdowns.com/article/170/Article_938.html
如何使用:
文檔約定
創建安裝程序
創建腳本
段內參數
一些常量
公共參數
安裝腳本段
[Setup] 段
[Dirs] 段
[Files] 段
[Icons] 段
[INI] 段
[InstallDelete] 段
[Messages] 段
[Registry] 段
[Run] 段
[UninstallDelete] 段
[UninstallRun] 段
其它問題:
其它注意事項
在命令行執行編譯器
安裝命令行參數
文檔約定
"Windows 95/NT 4+"
這是 Windows 95, 98, NT 4.0, 2000 以及更高版本的簡稱。
"Windows 98/NT 4+"
這是 Windows 98, NT 4.0, 2000 以及更高版本的簡稱。
"Windows NT"
無論何時提及 Windows NT,除非有其他說明,他總是包括 Windows 2000(亦即 NT 5.0)。
等寬字體
當你看見文檔里的等寬字體,說明他是腳本文件的引用。
創建安裝程序
安裝程序是以腳本(script)的方式來創建的。(不要一看見“腳本”這個術語就害怕,你只需要花上幾分鐘的時間就可以掌握它的要領!)
該腳本文件的擴展名是“.iss”(意思是 Inno Setup Script)。腳本文件控制了安裝程序的每一個外觀界面。它指定了哪些文件要被復制及其位置,創建什么應用程序圖標和為它們命名等等。
腳本文件通常可以用安裝編譯程序內建的編輯器來創建和編輯,完成以后寫入腳本文件,下一步也是最后一步是在安裝編譯器的菜單里選擇“編譯”(Compile)。創建完成以后該干什么呢?準備運行這個基于該腳本的安裝程序吧!默認情況下,這個文件被創建在腳本文件所在文件夾的“OUTPUT”子文件夾下。
要了解腳本文件是如何工作的,運行安裝編譯器,單擊“文件\打開”選擇一個位于 Inno Setup 文件夾的 Samples 子文件夾下的示例腳本文件。(用這些示例文件作為你自己的腳本文件的模板可能示非常有用處的。)
參見
創建腳本
創建腳本
一個 Inno Setup 腳本是一個簡單的 ASCII 文本文件。它的格式非常類似于 .INI 文件,如果你有這方面的經驗你就會發現學習起來有多么的容易。
就象下面的示例所顯示的,腳本文件包括“段”(sections)和“項”(entries)。段名的兩邊始終有一對中括號“[]”,在 [Setup] 段中的每一項包括一個關鍵字和他的值,關鍵字和值用等于號“=”連接在一起。下面的這個示例說明了腳本文件是如何被組織的:
[在這里添加段名,例如 Setup]
這是一個關鍵字=這是一個值
這是其它的關鍵字=這是其它的值
[在這里添加段名,例如 Files]
Source: "MYPROG.EXE"; DestDir: "{app}"
你也可以在你的腳本文件中加上注釋(這些注釋將會被安裝編譯器忽略),方法是在每一行注釋的行首加上一個分號“;”,例如:
; 這是一行注釋,我可以在這里寫上提醒我的內容...
參見
段內參數
一些常量
[Setup] 段
[Dirs] 段
[Files] 段
[Icons] 段
[INI] 段
[InstallDelete] 段
[Messages] 段
[Registry] 段
[Run] 段
[UninstallDelete] 段
[UninstallRun] 段
段內參數
腳本文件中的所有的段,除了[Setup],都是以行位單位,每行分為若干個參數。下面是一個 [Files] 段的示例:
[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.HLP"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme
每一個參數都有一個名稱,后面緊跟一個冒號,然后是它的值。除非有其它的說明,參數是可選的,如果參數沒有指定則取它們的默認值。如果一行內有多個參數則用分號將其分開 (還可以加一個空格符),他們可以按任何順序排列出來。
參數的值多數情況下是用引號擴起來("),但使用引號也是可選的。然而如果這個參數的值里面的前導符號或者后綴符號是空格的話就必須加上引號了。另外需要說明的是使用內嵌的分號和引號,要插入一個引號則使用兩個連續的引號來代替。例如,下面的示例:
"This "" contains "" embedded "" quotes"
""""
安裝程序編譯器將會視為:
This " contains " embedded " quotes
"
一些常量
多數的腳本項都可以在它們的內部嵌入“常量(constants)”,它們總是被一對大括號({ })擴起來的。當安裝程序被啟動的時候,這些常量將被轉換成其真實的值,這依賴于用戶的選擇和系統配置,例如,{win} 這個常量在絕大多數的系統當中將被轉換成“C:\WINDOWS”。
字符“{”被視為一個常量的起始標記,如果你想獲得的是它的真實字符,那么你必須使用兩個連續的“{”字符。
如果一個常量的后面緊跟著一個反斜杠,而此時這個常量被轉換成其真實值的結尾也是一個反斜杠時,Inno Setup 會自動的刪除一個反斜杠,這樣處理的明顯的好處是如果這個常量指向了“C:\”,{常量名}\file 就會被正確的轉換成“C:\file”而不是“C:\\file”。然而如果你想要防止這種事情的發生,那么就要將反斜杠用大括號括起來,象這樣:{app}{\}.
下面所列出的是目前已經被支持的常量。
目錄常量
{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 的返回值)。
公共參數
有倆個可選的參數可以在所有的段里面的任何項中使用,它們是:
MinVersion
說明:
該項處理所需的分別最低的 Windows 版本和 Windows NT 版本. 如果將某個版本號指定為 0 那么在該平臺上就再也不會處理這項了,版本創建編號(Build numbers)和(或)服務包級別(Service pack levels)也可以被包括在版本號當中。這個參數將會覆蓋位于 [Setup] 段當中的 MinVersion 關鍵字。
示例:
MinVersion: 4.0,4.0
OnlyBelowVersion
說明:
基本上是和 MinVersion 相反,該項所指定的最低的 Windows 版本 和 Windows NT
版本將不會被處理,例如:如果你指定了 4.1,5.0 并且用戶運行在 Windows 95 或 NT 4.0 下,那么該項將會被處理,但是如果用戶運行在 Windows 98 (報告的版本信息是 4.1)或 Windows 2000 (報告的版本信息是 NT 5.0),則該項就不會被處理。使用“0”表示該版本號上限的限制。版本創建編號(Build numbers)和(或)服務包級別(Service pack levels) 也可以包括在版本號當中。這個參數將會覆蓋位于 [Setup] 段當中的 OnlyBelowVersion 關鍵字。
示例:
OnlyBelowVersion: 4.1,5.0
其它注意事項
安裝程序是按照段內的排列順序來處理所有的項的,[UninstallRun] 段是個例外,卸載時處理所有項的順序是與安裝程序相反的。
在這個示例中:
[INI]
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Flags: uninsdeletesectionifempty
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"; Flags: uninsdeleteentry
安裝程序首先記錄下第一項的數據 uninsdeletesectionifempty 標記到卸載記錄中。創建第二項的鍵,然后記錄下 uninsdeleteentry 標記的數據到卸載記錄中,當程序被卸載時,卸載程序將首先處理 uninsdeleteentry 標記,刪除該項,然后才是 uninsdeletesectionifempty 標記。
如果安裝程序在用戶的系統中檢測到一個 Windows 共享版本,Windows 系統目錄是寫保護的,{sys} 目錄常量將會被轉變為用戶的 Windows 目錄替代系統目錄。
在命令行執行編譯器
腳本文件也可以在命令行被安裝編譯器編譯。命令行的使用方法如下:
compiler /cc <腳本文件>
示例:
compil16 /cc c:\isetup\sample16\sample16.iss
compil32 /cc "c:\isetup\sample32\my script.iss"
在上面列出的例子中,帶有空格的文件名必須用引號括起來。
在命令行運行安裝編譯器不支持正常的進程顯示或任何錯誤消息。如果編譯成功安裝編譯器將會返回一個退出代碼 0,如果是 1 則表示有無效的命令行參數, 2 則表明編譯失敗。
安裝命令行參數
安裝程序本身接受三個不同的可選的命令行參數,這些參數能被用于系統管理員和其他程序調用安裝程序。
/SP-
在安裝程序開始時禁止“即將安裝 ... ,繼續嗎?”的提示,當然,它將使 [Setup] 段的 DisableStartupPrompt 關鍵字設置為 yes 無效
/DIR="x:\dirname"
替換在“選擇目標文件夾”向導頁顯示的默認的目錄名,必需要指定一個全程路徑名。如果 [Setup] 段的 DisableDirPage 關鍵字被設置為 yes, 那么該命令行參數將被忽略。
/GROUP="group name"
替換在“選擇程序組”向導頁顯示的默認的程序組名,如果 [Setup] 段的 DisableProgramGroupPage 關鍵字被設置為 yes, 那么該命令行參數將被忽略。
安裝腳本段
安裝腳本段
[Setup] 段
[Dirs] 段
[Files] 段
[Icons] 段
[INI] 段
[InstallDelete] 段
[Messages] 段
[Registry] 段
[Run] 段
[UninstallDelete] 段
[UninstallRun] 段
其它問題:
其它注意事項
在命令行執行編譯器
安裝命令行參數
[Setup] 段
這個段包括了安裝和卸載程序所使用的全局設置,并且有些關鍵字在你建立的安裝程序中是必須要用到的。這個是 [Setup] 段的一個示例:
[Setup]
AppName=My Program
AppVerName=My Program version 1.4
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
下面的這些關鍵字可以被放進 [Setup] 段中去:
(粗體字 表示是必需的)
編譯器相關
CompressLevel
DiskClusterSize
DiskSize
DiskSpanning
DontMergeDuplicateFilesOutputBaseFilename
OutputDir
ReserveBytes
SourceDir
UseSetupLdr
安裝程序相關
功能關鍵字: 這些關鍵字影響到安裝程序的操作,或是保存起來以備將來卸載時所用到。
AdminPrivilegesRequired
AllowNoIcons
AllowRootDirectory
AlwaysCreateUninstallIcon
AlwaysRestart
AlwaysUsePersonalGroup
AppName
AppId
AppMutex
AppPublisher
AppPublisherURL
AppSupportURL
AppUpdatesURL
AppVersion
AppVerName
ChangesAssociations
CreateAppDir
CreateUninstallRegKey
DefaultDirName
DefaultGroupName
DirExistsWarning
DisableAppendDir
DisableDirPage
DisableFinishedPage
DisableProgramGroupPage
DisableStartupPrompt
EnableDirDoesntExistWarning
ExtraDiskSpaceRequired
InfoAfterFile
InfoBeforeFile
LicenseFile
MessagesFile
MinVersion
OnlyBelowVersion
Password
Uninstallable
UninstallDisplayIcon
UninstallDisplayName
UninstallFilesDir
UninstallIconName
UninstallLogMode
UpdateUninstallAppName
UsePreviousAppDir
UsePreviousGroup
外觀界面關鍵字:這些關鍵字決定了安裝程序的外觀樣式。
AppCopyright
BackColor
BackColor2
BackColorDirection
BackSolid
WindowShowCaption
WindowStartMaximized
WindowResizable
WindowVisible
WizardImageBackColor
WizardImageFile
廢棄的
Bits
DisableDirExistsWarning
OverwriteUninstRegEntries
[Dirs] 段
這個段是可選的,而且通常對于大多數簡單的應用程序來書不是必需的。這個段是用來創建除用戶選擇的應用程序目錄以外的其它的附加的目錄,它是被自動創建的。這個段所創建的子目錄是可以脫離主應用程序而共同使用的目錄。當然在 [Files] 段里面的文件被復制到某個目錄之前你并不一定要創建它,然而在卸載程序的時候在 [Dirs] 和 [UninstallDelete] 段里面沒有指定的目錄就不會被刪除。
這是一個 [Dirs] 段的示例:
[Dirs]
Name: "{app}\data"
Name: "{app}\bin"
上面的示例演示了在安裝程序的應用程序目錄被創建之后,在應用程序的下面建立兩個子目錄。
下面列出了支持的參數:
Name (必需的)
說明:
要被建立的目錄的名稱,通常它以一個目錄常數開始。
示例:
Name: "{app}\MyDir"
Flags
說明:
“標記”,這個參數是一個附加的選項集合,可以多個選項共同使用,使用空格分開多個選項。下面列出了被支持的選項:
deleteafterinstall
告訴安裝程序象平常一樣建立目錄,但是當安裝程序結束(或被中止)之后這個目錄是空的情況下將這個目錄刪除。如果釋放腳本的 [Run] 段所執行的程序所需要的臨時的數據時這個選項是很有用的。
uninsalwaysuninstall
告訴卸載程序試圖刪除這個目錄而不管它是不是空的。通常卸載程序只會嘗試刪除在安裝之前不存在的目錄。
uninsneveruninstall
告訴卸載程序不要去刪除這個目錄。在默認情況下,在 [Dirs] 段里面指定的目錄如果是空的卸載程序就會嘗試將其刪除。
示例:
Flags: uninsneveruninstall
公共參數
[Files] 段
這個段是可選的,但對于大多數安裝程序來說是必不可少的。在這里定義了安裝程序需要復制到用戶的系統當中的全部文件。
在安裝期間,卸載程序和數據被自動的復制到應用程序的目錄當中去,因此你不必手工的將它們添加到 [Files] 段。
這是一個 [Files] 段的示例:
[Files]
Source: "CTL3DV2.DLL"; DestDir: "{sys}"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.HLP"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme
下面列出了支持的參數:
Source (必需的)
說明:
“源文件”的名稱,如果沒有提供全程路徑時編譯器會根據安裝程序的源目錄的路徑預先設定號路徑。
允許通配符,根據通配符可以在一項里面簡單的指定一組文件。當使用了通配符的時候,所有匹配的文件使用相同的可選項。
當標記(flag) external 被指定的時候,Source 必須是一個在發布介質或用戶的系統中已經存在的文件(或帶有通配符)的全程路徑。(例如“{src}\license.ini”).
示例:
Source: "MYPROG.EXE"
DestDir (必需的)
說明:
這個是文件將要被安裝到用戶的系統當中去的目錄。它幾乎總是以一個目錄常量開始的。如果指定的路徑不存在于用戶的系統中,它將會被自動的創建。
示例:
DestDir: "{app}"
DestName
說明:
這個常數為將要安裝到用戶的系統中的文件指定一個新的名字。在默認的情況下,安裝程序使用的是同 Source 參數一樣的文件名,因此在多數情況下不需要指定該參數。
示例:
DestName: "MYPROG2.EXE"
CopyMode
默認:
normal
說明:
“復制模式”,指定文件復制的規則,必須是下列規則之一。
normal
這是最常使用的選項。如果文件已經存在于用戶的系統當中并且比要復制的文件的版本更新時(由文件的版本信息決定),安裝程序將會向用戶提出詢問是否要替換掉已經存在的文件。如果已經存在的文件不包含文件的版本信息,它將會被覆蓋而不會向用戶詢問。
參見這個標題下面的注意中關于版本檢查的重要說明。
onlyifdoesntexist
只有當用戶的系統中的文件不存在時才復制文件。
alwaysoverwrite
總是覆蓋已經存在的文件,甚至如果已經存在的文件比被安裝的文件的版本更新的情況下也是如此。對于共享的系統文件永遠也不要這樣做!
alwaysskipifsameorolder
類似于 normal, 不同之處是如果遇到已經存在的文件不會向用戶提出詢問。當這個模式被使用時,更新的一經存在的文件時從來不會被替換的。
示例:
CopyMode: normal
Attribs
說明:
為文件指定附加的“屬性”,它可以包括一個或多個屬性,它們是:readonly, hidden, system. 如果沒有指定這個參數,安裝程序不會給文件指派任何特殊的屬性。
示例:
Attribs: hidden system
FontInstall
說明:
告訴安裝程序需要被安裝的文件是一個字體文件,該值是被保存到注冊表或 WIN.INI 文件中的字體名稱,這個名稱必須嚴格地和在資源管理器中雙擊字體文件看到的名稱相對應。注意,安裝程序會自動的在字體名稱的末尾加上“(TrueType)”。
如果這個字體文件不是一個 TrueType 字體,你必須在 Flags 參數中指定 fontisnttruetype 標記。
建議在安裝字體到 {fonts} 目錄的時候使用復制模式參數 onlyifdoesntexist 和標記(flag)參數 uninsneveruninstall.
示例:
Source: "OZHANDIN.TTF"; DestDir: "{fonts}"; FontInstall: "Oz Handicraft BT"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall
Flags
說明:
“標記”,這個參數是一個附加的選項集合,可以多個選項共同使用,使用空格分開多個選項。下面列出了被支持的選項:
comparetimestampalso
(專門用途) 如果要被復制到用戶系統的文件已經存在于用戶的系統當中并且它們具有相同的版本信息,告訴安裝程序進行時間戳(文件的日期時間屬性)的比較。 在正常情況下安裝程序不會覆蓋已經存在的文件,但是當使用了這個標記的時候, 如果已存在的文件的時間戳比它的版本信息還要舊,安裝程序在安裝文件時就會覆蓋它。當復制模式不是 normal 或 alwaysskipifsameorolder 這兩者之一時該標記不起作用。
confirmoverwrite
當文件已經存在每個文件在復制之前始終向用戶提出詢問。
deleteafterinstall
告訴安裝程序象平常一樣復制文件,但是當安裝程序結束(或被中止)之后將這個文件刪除。如果釋放腳本的 [Run] 段所執行的程序所需要的臨時的數據時這個選項是很有用的。
此標記不能和下列標記在一起組合使用: isreadme, regserver, regtypelib, restartreplace, sharedfile, uninsneveruninstall.
external
此標記告訴 Inno Setup 不要將由 Source 參數指定的文件編譯進安裝程序文件中,在復制文件的時候由發布介質或用戶的系統中已經存在文件代替。要獲得更多詳細的信息請參見 Source 參數的說明。
fontisnttruetype
如果 FontInstall 參數指定的是一個 非 TrueType 字體則使用此標記。
isreadme
該文件是“自述(README)”文件,安裝程序中只有一個文件能夠使用此參數。當有一個文件使用了這個參數時,用戶將被詢問是否愿意在安裝程序結束時查看自述文件,如果選擇了是,安裝程序將會根據文件的類型用默認的程序打開這個文件,基于這個原因,自述文件應該具有象 .txt, .wri 或 .doc. 這樣的擴展名。
注意如果安裝程序要重新啟動用戶的計算機(比如安裝了一個帶有 restartreplace 參數的文件或在 [Setup] 段中的 AlwaysRestart
關鍵字的值為 yes),安裝程序就不會向用戶詢問是否要查看自述文件。
overwritereadonly
始終覆蓋一個只讀 (read-only) 文件,如果沒有這個參數,當一個已存在的只讀文件要被覆蓋時安裝程序將會詢問用戶。
regserver
注冊 OLE 服務器 (或稱作 ActiveX 控件)。如果設置了此標記,安裝程序將查找并執行 DLL/OCX 的 DllRegisterServer 輸出,卸載程序調用 DllUnregisterServer. 當結合 sharedfile 標記一起使用,只有參照技術器的值歸零時 DLL/OCX 才可能百取消登記 (unregistered).
要獲得更多的詳細信息請參見此標題最后的 注意。
regtypelib
注冊類型庫 (.tlb). 卸載程序將會取消注冊類型庫 (除非指定了 uninsneveruninstall 標記). 就像 regserver 標記那樣,如果結合 sharedfile 標記一起使用,這個文件只有參照計數器的值歸零時才可能被卸載。
要獲得更多的詳細信息請參見此標題最后的 注意。
restartreplace
此標記通常用于替換系統核心文件。如果文件已經預先存在并發現它已經被鎖定結果導致安裝程序無法替換該文件,安裝程序就會注冊此文件(對于 Windows 和 Windows NT 分別使用 WININIT.INI 和函數 MoveFileEx)在下次啟動系統時被替換。當遇到這種情況,在安裝過程結束時用戶將被提示重新啟動計算機。
要保持 Windows95/98 和 3.1 的兼容性,使用了此標記的項不應該使用長文件名,只能支持“8.3”格式的文件名。(Windows NT 和 2000 則沒有此限制。)
重要提示:在 Windows NT/2000 下只有當用戶具有管理員權限時使用 restartreplace 標記才可以成功的替換使用中的文件。如果用戶沒有管理員權限,將會顯示如下的信息:“RestartReplace failed: MoveFileEx failed; code 5.”,因此,當使用 restartreplace 標記時強烈建議讓你的安裝程序需要管理員權限,在 [Setup] 段里面設置 "AdminPrivilegesRequired=1"。
sharedfile
(僅 Windows 95/NT 4+) 使用 Windows 的共享文件計數功能 (位于注冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs). 這樣會使應用程序之間能夠共享一個文件,不用擔心在不注意的情況下會刪除文件。在每次安裝共享文件的時候,與這個文件相對應的“參照計數器”的值就會加一,而每次應用程序被卸載的時候,參照計數器的值就會減一,如果參照計數器的值歸零的時候,該共享文件就會被刪除(在用戶確認的情況下)。
絕大多數被安裝到 Windows 系統目錄下的文件都應當使用這個標記,包括 .OCX 和 .DPL (Delphi 3 package) 文件。不使用這個標記的僅有的一個例外是 MFC DLLs. 作為替代,應該在復制模式中使用 onlyifdoesntexist ,并結合 uninsneveruninstall 標記,或者是如果安裝單獨發布的 MFC DLL 的最近的版本,則使用復制模式 alwaysskipifsameorolder ,并結合使用標記 uninsneveruninstall 和 restartreplace.
當安裝程序被運行在一個 NT 3.51 系統時,被安裝的帶有此標記的文件就再也不會被刪除了。
skipifsourcedoesntexist
只有當 external 標記也使用了的時候這個標記才會有用。它會告訴安裝程序如果源文件不存在的話則無任何提示的(靜靜的)跳過該項,如果沒有使用這個標記則會顯示一個錯誤消息。
uninsneveruninstall
從來不會卸載這個文件。此標記應當被保守地使用,而且通常它是和復制模式 onlyifdoesntexist 在一起結合使用。意思是用于安裝一個特別公共的共享文件,就像 CTL3DV2.DLL 或者一個 MFC DLL, 你不應該用卸載程序去刪除這個文件的原因是以后其它的應用程序也要使用到它。
示例:
Flags: isreadme
公共參數
注意
如果安裝程序正在安裝一個已經存在于用戶的系統當中的 16 位的 DLL 或者 EXE 文件,兩個文件的版本信息是不會相比較的,已存在的文件將始終被覆蓋(除非當復制模式的參數是 onlyifdoesntexist),這是由一個 Windows 的限制決定的,32 位的程序就像 Inno Setup 只能讀取 32 位可執行文件的版本信息。
在安裝程序的最后一步安裝程序會注冊所有的帶有 regserver 或 regtypelib 標記的文件。然而,如果 [Setup] 段關鍵字 AlwaysRestart 的值是 yes, 或如果有文件帶有 restartreplace 標記,全部的文件將會在下次啟動的時候注冊(在 Windows 注冊表的 RunOnce 創建一項)。
當帶有 .HLP 擴展名(Windows 的幫助文件)的文件被卸載的時候,其對應的 .GID 和 .FTS 文件同樣會被自動刪除。
[Icons] 段
這個段是可選的,但對于大多數安裝程序來說是必不可少的。它定義了所有的安裝程序要在用戶系統中創建的程序管理器/開始菜單的圖標。它也能被用來在其它的位置創建應用程序圖標(快捷方式),比如就像桌面。
卸載圖標是由安裝程序內部創建的,這樣一來你就不需要在 [Icons] 段里面手工的添加它。默認情況下,安裝程序運行在 Windows 95/NT 4+ 的時候是不創建卸載圖標的 ――除了安裝程序運行于 Windows NT 3.51 的時候。 要強制創建一個卸載圖標,請使用 [Setup] 段里面的 AlwaysCreateUninstallIcon 關鍵字。
這是 [Icons] 段的一個示例:
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MYPROG.EXE"; WorkingDir: "{app}"
下面列出了支持的參數:
Name (必需的)
說明:
要創建的應用程序圖標的名稱和位置。此參數可以使用任何任何“外殼文件夾常量”和“目錄常量”。
注意: 記住 Windows 95/NT 4+ 的應用程序圖標是作為文件直接存儲的,這樣一來普通文件所不允許使用的字符都不能用來作為應用程序圖標的名稱。
示例:
Name: "{group}\My Program"
Name: "{group}\Subfolder\My Program"
Name: "{userdesktop}\My Program"
Name: "{commonprograms}\My Program"
Filename (必需的)
說明:
應用程序圖標的命令行文件名,它通常以一個目錄常量開始。
示例:
Filename: "{app}\MYPROG.EXE"
Parameters
說明:
應用程序圖標的可選的命令行參數,可以包括常量,在 Windows 95/NT 4+ 下運行時才可以包括引號。
示例:
Parameters: "/play filename.mid"
WorkingDir
說明:
應用程序圖標的工作目錄,應用程序啟動的那個目錄,如果沒有指定該參數或該參數是空的,Windows 將使用一個默認的路徑,它隨著 Windows 的版本的不同而改變。這個參數可以包括常量。
示例:
WorkingDir: "{app}"
Comment
說明:
指定快捷方式的“注釋”(或“描述”)欄的內容,它決定了在 Windows 2000 下的彈出信息,早期的 Windows 版本忽略這個注釋。
示例:
Comment: "This is my program"
IconFilename
說明:
要被顯示的一個自定義的應用程序圖標(位于用戶的系統中)的文件名。它可以是一個包含圖標的可執行文件映像 (.exe, .dll) 或一個 .ico 文件。如果沒有指定該參數或該參速是空的,Windows 將會使用文件的默認圖標。這個參數可以包括常量。
示例:
IconFilename: "{app}\myicon.ico"
IconIndex
默認:
0
說明:
由 IconFilename 指定的文件的以零開始的圖標索引。
示例:
IconIndex: 0
Flags
說明:
“標記”,這個參數是一個附加的選項集合,可以多個選項共同使用,使用空格分開多個選項。下面列出了被支持的選項:
closeonexit
當設置了此標記時,安裝程序將設置快捷方式的“退出時關閉”屬性。這個標記僅對基于 MS-DOS 的應用程序有效 (具體說就是是否具有 .pif 擴展名)。如果這個標記和 dontcloseonexit 標記都沒有指定,安裝程序就不會去改變“退出時關閉”的屬性。
createonlyiffileexists
當設置了此標記時,安裝程序只創建已存在的由 Filename 參數指定的文件的應用程序圖標。
dontcloseonexit
類似于 closeonexit, 只是會導致安裝程序不選定“退出時關閉”屬性。
runmaximized
當設置了此標記時,安裝程序將應用程序圖標的“運行方式”設置為“最大化”,這樣當程序被啟動時以最大化的模式初始化。當安裝在 Windows NT 3.51 上時該標記不起作用。
runminimized
當設置了此標記時,安裝程序將應用程序圖標的“運行方式”設置為“最小化”,這樣當程序被啟動時以最小化的模式初始化。
uninsneveruninstall
告訴卸載程序不要刪除這個應用程序圖標。
useapppaths
當設置了此標記時,在 Filename 參數里僅指定沒有路徑的文件名,以后安裝程序將會從注冊表的 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" 鍵里面自動得到預先設定好的對應該文件名的路徑名。
示例:
Flags: runminimized
公共參數
[INI] 段
此段時可選的,它定義了一些 .INI 文件項,在文件被復制以后安裝程序在用戶的系統中的設定。
這是 [INI] 段的一個示例:
[INI]
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Flags: uninsdeletesection
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"
下面列出了支持的參數:
Filename (必需的)
說明:
你想要安裝程序修改的 .INI 文件的文件名,它可以包括常量。如果這個參數時空的,它將寫入系統的 Windows 目錄的 WIN.INI 文件。
示例:
Filename: "{win}\MYPROG.INI"
Section (必需的)
說明:
要被創建的段的名稱,可以包括常量。
示例:
Section: "Settings"
Key
說明:
要被設定的鍵的名稱,可以包括常量。如果沒有指定這個參數或這個參數是空的就不會創建任何鍵。
示例:
Key: "Version"
String
說明:
賦給鍵的值,可以使用常量。如果沒有指定該參數不會創建該鍵。
示例:
String: "1.0"
Flags
說明:
“標記”,這個參數是一個附加的選項集合,可以多個選項共同使用,使用空格分開多個選項。下面列出了被支持的選項:
createkeyifdoesntexist
只有該鍵不存在是才能給改建賦值。
uninsdeleteentry
程序被卸載時刪除該項,它可以結合 uninsdeletesectionifempty 標記一起使用。
uninsdeletesection
當程序被卸載時,刪除該項所在的整個段。對于由 Windows 本身使用的段(例如一些在 WIN.INI 中的段)來說這明顯不是一個好的主意,你應當將它用到自己的應用程序中的段。
uninsdeletesectionifempty
類似于 uninsdeletesection, 但是只能在該段中沒有了鍵的時候才能刪除。它可以結合 uninsdeleteentry 標記一起使用。
示例:
Flags: uninsdeleteentry
公共參數
[InstallDelete] 段
它使用的是和 [UninstallDelete] 段相同的格式,不同的是它是在安裝程序的第一步被處理的。
[Messages] 段
[Messages] 段是用于定義安裝程序和卸載程序所顯示的消息。通常你不需要在你的腳本文件里面創建 [Messages] 段,默認情況下所有的顯示消息都由 Inno Setup 包含的文件 Default.isl 定義。 (或由 [Setup] 段的關鍵字 MessagesFile 指定的任何文件).
然而,單獨的消息可以被你的腳本中創建的 [Messages] 段覆蓋。要這么做,首先你需要知道你要改變的消息的標識 (ID),在搜索 Default.isl 文件時能很容易的發現。例如,你想要改變安裝向導的按鈕 “下一步(&N)” 為 “向前(&F)”,該消息的標識為“ButtonNext”,那么你應該象這樣創建 [Messages] 段:
[Messages]
ButtonNext=&Forward >
有些消息帶有象 %1 和 %2 這樣的參數,你可以重新排列參數的順序(例如將 %2 移到 %1 的前面)并且如果需要的話可以重復使用參數(例如“
%1 ... %1 %2”)。在帶有參數的消息中,使用兩個連續的“%”代替一個嵌入的“%”,“%n”創建一個換行。
如果你希望將 Inno Setup 的文本翻譯成其他語言修改并替換文件 Default.isl 或在你創建的腳本里面覆蓋每個消息,做一個 Default.isl 的副本并另起一個名字就像 MyTranslation.isl. 在你要使用 MyTranslation.isl 的任何安裝程序中,簡單的將 [Setup] 段中的關鍵字 MessagesFile 指向該文件。
特殊用途的標識
有幾個 [Messages] 段的項實際上不是用于在屏幕上顯示的,它們是用于在安裝程序中指定所使用的字體和字型號的。這些可選項中的每一個都有一個前導下劃線字符 (“_”) 開始,請參閱 Default.isl 文件頭部的注釋的使用方法示例。
[Registry] 段
這個段是可選的,他定義了一些注冊表項,用于在復制完文件之后創建在用戶的系統中。
下面是 [Registry] 段的一個示例。
[Registry]
Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\My Company\My Program"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"
下面列出了支持的參數:
Root (必需的)
說明:
根鍵,必須是下列各項之一:
HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)
示例:
Root: HKCU
Subkey (必需的)
說明:
子鍵名稱,可以包括常量。
示例:
Subkey: "Software\My Company\My Program"
ValueType
說明:
鍵值的數據類型,必須是下列各項之一:
none
string
expandsz
multisz
dword
binary
如果指定了 none (默認設置),安裝程序將創建一個沒有鍵值的鍵,在這種情況下將忽略 ValueName 和 ValueData 參數。
如果指定了 string,安裝程序將創建一個字符串 (REG_SZ) 值。
如果指定了 expandsz,安裝程序將創建一個擴展字符串 (REG_EXPAND_SZ) 值。這種數據類型主要用在 Windows NT 上,但是也支持 Windows 95/98.
如果指定了 multisz,安裝程序將創建一個多行文本 (REG_MULTI_SZ) 值。
如果指定了 dword,安裝程序將創建一個整數 (REG_DWORD) 值。
如果指定了 binary,安裝程序將創建一個二進制 (REG_BINARY) 值。
示例:
ValueType: string
ValueName
說明:
要創建的鍵值的名稱,可以包含常量。如果它是空的,將會寫入“默認”(Default)值中。如果ValueType 參數被設置為 none, 該參數將被忽略。
示例:
ValueName: "Version"
ValueData
說明:
鍵值的數據。如果 ValueType 參數是 string, expandsz 或 multisz, 該參數是一個可以包含常量的字符串。如果數據類型是 dword, 該參數可以是一個十進制整數(例如“123”)或者是一個十六進制整數(例如“$7B”)。如果數據類型是 binary, 這是一個十六進制字節序列的形式:“00 ff 12 34”。如果數據類型是 none, 該參數被忽略。
對于一個 string, expandsz 或者 multisz 類型的鍵值,在這個參數中你可以使用一個特殊的叫做 {olddata} 的常量。{olddata} 常量代表的是注冊表鍵值原來的數據。如果你想要添加一個字符串到一個已經存在的鍵值時 {olddata} 常量時很有用的,例如,{olddata};{app}.如果該鍵值并不存在或者不是一個字符串類型,這時 {olddata} 常量會被默默地刪除。如果正要被創建的鍵值是 multisz 類型,但是已經存在的鍵值并不是多行文本 (例如它是 REG_SZ 或 REG_EXPAND_SZ )類型,這時 {olddata} 常量也會被默默地刪除,反之亦然。
對于一個 multisz 類型的鍵值,在這個參數中你可以使用一個特殊的叫做 {break} 的常量來嵌入換行(nulls)。
示例:
ValueData: "1.0"
Flags
說明:
“標記”,這個參數是一個附加的選項集合,可以多個選項共同使用,使用空格分開多個選項。下面列出了被支持的選項:
createvalueifdoesntexist
當指定了此標記時,只有當相同名稱的鍵值不存在時安裝程序才會創建該鍵值。如果數據類型是 none ,或者同時指定了 deletevalue 標記將忽略該標記。
deletekey
當指定了此標記時,如果該項已存在,安裝程序會首先嘗試去刪除它,包括其中的鍵值和子鍵,然后如果 ValueType 不是 none 的話它將創建一個新的鍵和鍵值。
deletevalue
當指定了此標記時,如果該鍵值已存在,安裝程序會首先嘗試刪除該鍵值。然后如果 ValueType 不是 none ,并且該鍵不存在時它將創建該鍵和新的鍵值。
dontcreatekey
當指定了此標記時,如果該鍵不存在于用戶的系統中安裝程序將不會試圖創建該鍵或任何鍵值。如果改建不存在將不顯示錯誤消息。
典型地該標記同 uninsdeletekey 標記結合使用,以便在安裝時沒有創建該鍵時確保在卸載期間刪除該鍵。
noerror
如果安裝程序在創建鍵或鍵值時無論什么原因失敗不顯示錯誤消息。
preservestringtype
該標記只用于 ValueType 參數為 string 或 expandsz 時。當指定了此標記并且該鍵值不存在或者已存在的鍵值不是字符串類型 (REG_SZ 或 REG_EXPAND_SZ) 時,該項將由 ValueType 指定的類型創建,如果該鍵值存在并且是一個字符串類型,該項將由與預先存在的鍵值相同的鍵值類型替代。
uninsclearvalue
當程序被卸載時,將設置該鍵值的數據為空的字符串 (類型 REG_SZ). 該標記不能同 uninsdeletekey 標記一起使用。
uninsdeletekey
當程序被卸載時,刪除整個鍵,包括其下全部的鍵值和子鍵。對于由 Windows 自身使用的鍵來說使用該標記明顯不是一個好的主意,你應當將該標記應用到你自己的應用程序鍵中。
uninsdeletekeyifempty
當程序被卸載時,如果該鍵下沒有其它鍵值和子鍵則將其刪除。該標記可以結合 uninsdeletevalue 標記一起使用。
uninsdeletevalue
當程序卸載時刪除該鍵值,該標記可以結合 uninsdeletekeyifempty 標記一起使用。
注意:對于 Inno Setup 1.1 之前的版本,你可以與 none 數據類型一起使用該標記則將會成為 “delete key if empty” (如為空則刪除該鍵)功能的標記。這個技巧現在已經不在被支持,你必須使用 uninsdeletekeyifempty 標記來實現該功能。
示例:
Flags: uninsdeletevalue
公共參數
[Run] & [UninstallRun] 段
[Run] 段是可選的,指定任意數量的程序在成功安裝程序以后及顯示結束對話框之前被執行。同樣 [UninstallRun] 段也是可選的,指定任意數量的程序在“卸載程序”的第一步時被執行。除非下面有其它說明,兩個段共有相同的語法。
每個程序按照你的腳本編排的順序被執行,當出路 [Run]/[UninstallRun] 的項時,安裝程序將會等到當前的程序終止之后才處理下一個,當然除非使用了 nowait 標記。
這是一個 [Run] 段的示例。
[Run]
Filename: "{app}\INIT.EXE"; Parameters: "/x"
下面列出了支持的參數:
Filename (必需的)
說明:
要被執行的程序,或要被打開的文件/文件夾。如果 Filename 不是一個 .exe 或 .com 文件,你必須在該項中使用 shellexec 標記。該參數可以包含常量。
示例:
Filename: "{app}\INIT.EXE"
Parameters
說明:
程序可選的命令行參數,該參數可以包含常量。
示例:
Parameters: "/x"
WorkingDir
說明:
程序起始位置的目錄。如果沒有指定該參數或該參數是空的,將不會改變任何特殊的目錄。該參數可以包含常量。
示例:
WorkingDir: "{app}"
RunOnceId
說明:
只在 [UninstallRun] 段里面有效。如果相同的應用程序被安裝超過了一次,“run”項將會重復出現在卸載記錄文件里面。通過將一個字符串賦值給 RunOnceId, 你可以確保一個獨特的 [UninstallRun] 項在卸載期間只被執行一次。例如,如果在卸載記錄中的“run”中有兩個或者更多的帶有 RunOnceId 參數并被設置為“DelService”的項,則只有最后一個帶有一個 RunOnceId 參數并被設置為“DelService”的項會被執行。其余的將被忽略。注意 RunOnceId 參數是大小寫敏感的。
示例:
RunOnceId: "DelService"
Flags
說明:
“標記”,這個參數是一個附加的選項集合,可以多個選項共同使用,使用空格分開多個選項。下面列出了被支持的選項:
nowait
如果指定了該標記,將不會等待該項處理被結束運行之前就進行到下一個 [Run] 項,或者結束安裝程序。不能結合 waituntilidle
標記一起使用。
shellexec
如果 Filename 不是一個可以直接執行的文件(一個 .exe 或 .com 文件)則該標記是必需的。當設置了該標記時,Filename 可以是一個文件夾或者任何已注冊的文件類型 ―― 包括 .hlp, .doc 等等。文件將會被用戶系統中的與該文件類型相關聯的應用程序打開,就像用戶在資源管理器中用鼠標雙擊該文件一樣。
當在 Filename 中使用一個文件夾名稱時,建議在后面加上一個反斜杠字符(例如“{group}\”),以確保可能有相同名稱的程序不會被執行。同樣要注意文件夾只能在 Windows 95/NT 4+ 上被打開,因為從那時起使用了一個新的資源管理器的外殼。
使用 shellexec 標記有一個缺點,那就是無法等待該過程結束,因此,它始終就像被指定了 nowait 標記一樣操作。
skipifdoesntexist
如果指定了該標記,如果 Filename 不存在安裝程序將不會顯示錯誤消息。它只適用于 [Run] 段,因為卸載程序從來不顯示錯誤消息在 [UninstallRun] 項執行失敗時。
runmaximized
如果指定了該標記,將會在一個最大化的窗口啟動程序或文檔。
runminimized
如果指定了該標記,將會在一個最小化的窗口啟動程序或文檔。
waituntilidle
如果指定了該標記,它將暫停直到該過程正在等待用戶的輸入并且沒有未決的輸入時,取而代之的是等待該過程的結束。(該標記調用 WaitForInputIdle Win32 函數.) 不能結核 nowait 一起使用。
示例:
Flags: nowait
公共參數
[UninstallDelete] 段
該段是可選的。該段是用來定義一些附加的除了那些被安裝的應用程序之外的要被卸載程序刪除的文件或目錄。使用該段來刪除由你的應用程序創建的 .INI 文件是一個常用的辦法。卸載程序在卸載過程的最后一步處理這些項。
這是一個 [UninstallDelete] 段的示例:
[UninstallDelete]
Type: files; Name: "{win}\MYPROG.INI"
下面列出了支持的參數:
Type (必需的)
說明:
指出要被卸載程序刪除的是什么。必須是下列之一:
files
Name 參數指定的是一個具體的文件的名稱,或者是一個帶有通配符的文件名。
filesandordirs
功能上類似于 files ,但是它還可以匹配目錄名稱,并且任何名稱匹配的目錄包括其中所有的文件和子目錄都會被刪除。
dirifempty
當使用它時,Name 參數必須是一個目錄的名稱,但是它不能包括通配符。只有在不包含任何文件和子目錄的情況下該目錄才能被刪除。
示例:
Type: files
Name (必需的)
說明:
要被刪除的文件或目錄的名稱。
注意:不要試圖通過在這里使用通配符去刪除 {app} 目錄下的全部文件,我強烈建議你不要這樣做的原因由兩個,首先,用戶通常不會意識到可能還有他們放進應用程序目錄中的數據文件將要被刪除而不會得到警告(例如他們可能卸載應用程序只是為了要將它轉移到一個不同的驅動器)。最好是將其保留一直到最后用戶想要刪除時用手工的方法刪除;還有,如果由于用戶的失誤碰巧將程序安裝到了一個錯誤的目錄當中(例如 C:\WINDOWS)而這時去卸載它勢必結果會損失慘重。再次聲明,千萬不要這么做!
示例:
Name: "{win}\MYPROG.INI"
公共參數
編譯器相關
[Setup]: Bits
有效值: 32
說明:
1.3 版本以后已廢棄。 1.3 以前的版本的 Inno Setup 有一個 16 位的版本,編譯器將檢查 Bits 關鍵字以判斷是否使用了正確的編譯器來編譯腳本。以后 Inno Setup 的更新的版本只有 32 位的版本可用,你將不再需要設置該關鍵字。無論什么時候如果 Bits 被設置為“16”,編譯器都將會失敗并提示一個錯誤消息。
[Setup]: UseSetupLdr
有效值: yes 或 no
默認值: yes
說明:
告訴安裝程序編譯器要創建的安裝程序的類型,如果是 yes, 將把所有的安裝程序數據編譯成一個單獨的 SETUP.EXE (如果你愿意也可以重新命名為任何名稱)。如果是 no, 將把安裝程序數據編譯成至少三個文件:SETUP.EXE, SETUP.0 和 SETUP.1. 你想使用 no 的僅有的理由大概是為了調試的目的。
注意:不要在一個使用了多磁盤生成(DiskSpanning=yes)的安裝程序中使用 UseSetupLdr=no,當 UseSetupLdr 是 yes 時,安裝程序被復制到用戶的臨時 (TEMP) 目錄并在那里運行,這不會發生在 UseSetupLdr 是 no 的情況下,如果 Windows 試圖去在磁盤上尋找 setup.exe 文件卻不能找到,因為在驅動器中的是一個不同的磁盤,所以會產生錯誤的結果。
[Setup]: BackColor, BackColor2
有效值: 一個值形如 $bbggrr, 這里的 rr, gg 和 bb 指定了兩位的亮度值(以十六進制表示)分別為紅色,綠色和藍色。或者也可以是下列預定義的顏色名稱之一:clBlack(黑色),clMaroon(暗紅),clGreen(綠色),clOlive(橄欖綠),clNavy(深藍),clPurple(紫色),clTeal(深青),clGray(灰色),clSilver(淺灰),clRed(紅色),clLime(淺綠),clYellow(黃色),clBlue(藍色),clFuchsia(紫紅),clAqua(青綠),clWhite(白色)。
默認值: BackColor 為 clBlue,
BackColor2 為 clBlack
說明:
BackColor 關鍵字自定的顏色被用在安裝程序窗口背景漸變色的上面(或左面,如果 BackColorDirection=lefttoright),BackColor2 指定的顏色被用在下面(或右面)。
如果 BackSolid=yes 則 BackColor2 的設置被忽略。
示例:
BackColor=clBlue
BackColor2=clBlack
BackColor=$FF0000
BackColor2=$000000
[Setup]: BackColorDirection
有效值: toptobottom 或 lefttoright
默認值: toptobottom
說明:
決定了安裝程序窗口的背景漸變色的漸變方向,如果 BackColorDirection 是 toptobottom, 將自上而下繪出,如果是 lefttoright, 將從左到右繪出。
[Setup]: BackSolid
有效值: yes 或 no
默認值: no
說明:
它決定了安裝程序窗口的背景色是使用單一顏色還是漸變色,如果是 yes, 背景色會是一單一顏色(顏色由 BackColor 指定,忽略 BackColor2)。
[Setup]: AppName
說明:
這個必需的關鍵字指定了你正在安裝的應用程序的標題。不要包含版本號,那樣應該使用 AppVerName 關鍵字。AppName 在安裝程序的全部過程始終被顯示,位于安裝程序屏幕的左上角和向導中。
示例: AppName=My Program
[Setup]: AppVerName
說明:
這個必需的關鍵字的值應該和 AppName 的值相同(或相似),但是它還應當包含程序的版本號。
示例: AppVerName=My Program version 3.0
[Setup]: AppId
默認值: 如果沒有指定 AppId 或者它是空值,編譯器將會把 AppName 的值作為 AppId 來使用。
說明:
AppId 的值是被存儲在卸載記錄文件 (unins???.dat) 里面的,以便隨后的安裝程序檢查后決定是否可以被添加到一個特定的已存在的卸載記錄,安裝程序只有在已存在的卸載記錄中的 AppId 和當前的安裝程序的 AppId 相同是才能添加到卸載記錄。舉一個實際的例子,比方說你右兩個安裝程序,一個叫做《我的程序》而另外一個叫做《我的程序 1.1 升級版》,要想把《我的程序 1.1 升級版》添加到《我的程序》的卸載記錄中,你應該設置兩個安裝程序的 AppId 為相同的值。
AppId 還決定了卸載注冊表鍵的實際名稱,被 Inno Setup 在其末尾附加上“_is1”(因此,如果 AppId 是 “MyProgram”,那么這個鍵將會被命名為“MyProgram_is1”)。Inno Setup 的早于 1.3 的版本的鍵的名稱是基于 AppVerName 的值的。
無論什么時候 AppId 都不會被顯示出來,因此你要求非常隱諱的感覺很輕松。
示例: AppId=MyProgram
[Setup]: AppMutex
說明:
如果用戶要為當前的應用程序升級為新的版本,然而當前的應用程序正在運行,該關鍵字就是用來防止這類事情的發生的,而且它也可以防止用戶卸載正在運行的應用程序。它指定了一個或多個同名互斥體的名稱(多個互斥體用逗號隔開),安裝程序和卸載程序將會在啟動時檢查,如果存在,安裝程序/卸載程序將顯示如下的信息:“[安裝程序或卸載程序] 檢測到 [應用程序] 現在正在運行。請立即關閉它的全部實例,然后單機‘確定’繼續,或者‘取消’退出。”
如果你要使用這個關鍵字就必須在你的應用程序中以該關鍵字指定的名稱添加一個同名的互斥體。例如在 Delphi 和 C 中創建如下顯示的同名互斥體,該代碼應該在應用程序啟動是被執行。
Delphi:
CreateMutex(nil, False, ’MyProgramsMutexName’);
C:
CreateMutex(NULL, FALSE, "MyProgramsMutexName");
并不是必需在應用程序被結束之前顯示的銷毀同名互斥體對象,系統會自動完成此功能,也不推薦你這樣做,因為理想狀態下同名互斥體對象必須存在直到進程被完全終止。
注意在 Windows 下同名互斥體是大小寫敏感的。
要想獲得有關同名互斥體的更多信息請參閱 MS SDK 幫助的 CreateMutex 主題。
示例: AppMutex=MyProgramsMutexName
[Setup]: AppCopyright
說明:
可選的,它只是用來在安裝程序屏幕的右下角顯示一個版權消息。
示例: AppCopyright=Copyright ? 1997 My Company, Inc.
[Setup]: AppPublisher, AppPublisherURL, AppSupportURL, AppUpdatesURL, AppVersion
說明:
所有這些關鍵字都是用來在 Windows 2000 的控制面板“添加/刪除程序”的“支持”對話框中顯示一些信息。這些設置是可選的,并且在早期的 Windows 版本中是沒有作用的。
示例:
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.mycompany.com/
AppVersion=1.5
[Setup]: DefaultDirName
說明:
這是個必需的關鍵字,該值是默認的目錄名稱,用于“選擇目錄頁”向導。通常它有一個目錄常量前綴。
如果 UsePreviousAppDir 是 yes (默認值)并且安裝程序發現已經安裝了一個相同應用程序的早期版本,它將用先前選擇的目錄代替默認的目錄名稱。
示例:
如果你使用:
DefaultDirName={sd}\MYPROG
在 Setup 中,典型地應有如下顯示:
C:\MYPROG
如果你使用:
DefaultDirName={pf}\My Program
在 Setup 中,典型地應有如下顯示:
C:\Program Files\My Program
[Setup]: Uninstallable
有效值: yes 或 no
默認值: yes
說明:
它決定了 Inno Setup 的自動卸載程序是否被包含在安裝程序中。如果是 yes 將包含卸載程序,如果是 no 將不會包括可卸載支持,最終用戶只能用手工的方法刪除屬于你的應用程序的文件。
[Setup]: MinVersion
格式: a.bb,c.dd, 這里的 a.bb 是表示 Windows 的版本,c.dd 是表示 Windows NT 的版本。
默認值: 4,4
說明:
該關鍵字讓你指定運行你的軟件所需要的最低的 Windows 或 Windows NT 的版本,默認值是“4,4”,實際上它也可以被設置為“4,3.51”來支持 NT 3.51 . 要防止你的程序被運行在 Windows 或 Windows NT 上,指定“0”為其中之一的最低版本。版本創建編號(Build numbers)和(或)服務包級別(Service pack levels)可以被包括在版本號中。
如果用戶的系統不適合所要求的最低版本,安裝程序將給出一個錯誤消息然后退出。
[Setup]: OnlyBelowVersion
格式: a.bb,c.dd, 這里的 a.bb 是表示 Windows 的版本,c.dd 是表示 Windows NT 的版本。
默認: 0,0
說明:
該關鍵字讓你指定不能運行你的軟件的最低的 Windows 或 Windows NT 的版本(亦即高于此版本則無法運行)。指定 0 為其中之一的版本的意思是沒有版本上限。版本創建編號(Build numbers)和(或)服務包級別(service pack levels)可以被包括在版本號中。
該關鍵字實際上是和 MinVersion 恰好相反。
[Setup]: AdminPrivilegesRequired
有效值: yes 或 no
默認值: no
說明:
如果設置為 yes, 而且用戶沒有管理員的權限,那么安裝程序在啟動的時候將給出一個錯誤消息(“安裝這個程序時你必須以管理員的身份登錄。”)。它只適用于 Windows NT/2000.
[Setup]: DisableAppendDir
有效值: yes 或 no
默認值: no
說明:
當設置為 yes 時,安裝程序不會自動的添加上次組件的路徑從 DefaultDirName 到用戶在“選擇目錄”向導頁上雙擊鼠標選擇的目錄。此外,它設置目錄列表框的初始目錄為 DefaultDirName (如果該目錄存在)而不是上一級。
[Setup]: EnableDirDoesntExistWarning
有效值: yes 或 no
默認值: no
說明:
當設置為 yes 時,如果用戶選擇的文件夾不存在安裝程序將顯示一個消息框。當這項為 yes 時通常你還應該設置 DirExistsWarning=no。
[Setup]: AlwaysCreateUninstallIcon
有效值: yes 或 no
默認值: no
說明:
如果該項為 yes, 除了在控制面板的添加/刪除程序中添加一項之外安裝程序還將創建一個 “卸載 ...” 應用程序圖標。
在 NT 3.51 上安裝程序將會始終創建這個應用程序圖標不管該項的設置,因為它沒有包含“添加/刪除程序”的部件。
[Setup]: ExtraDiskSpaceRequired
默認值: 0
說明:
正常情況下,磁盤空間的需求是依照 [Files] 段中的所有文件的合計值計算出來并在向導中被顯示的。如果不管什么原因你想要增加顯示的磁盤空間,以字節為單位設置 ExtraDiskSpaceRequired 的數值你想要合計該數字。 (1048576 字節 = 1 兆字節)
[Setup]: CompressLevel
有效值: 0 到 9
默認值: 7
說明:
這是一個從 1 到 9 的數字,它指定了要給文件使用多大的壓縮率,0 表示不壓縮,9 表示最大限度的壓縮。數字越大處理的就越慢,使用高于默認值 7 的數字來壓縮并沒有多大的改善。
[Setup]: CreateAppDir
有效值: yes 或 no
默認值: yes
說明:
如果該值設置位 no, 將不會創建應用程序的目錄,也不會顯示“選擇目的文件夾”向導頁,并且 {app} 目錄常量會等效為 {win} 目錄常量。當 CreateAppDir 是 no 時如果卸載功能是允許的,卸載數據文件將會被創建于系統的 Windows 目錄。
[Setup]: CreateUninstallRegKey
有效值: yes 或 no
默認值: yes
說明:
如果該值設置為 no, 安裝程序將不會在控制面板的“添加/刪除程序”中創建一項。這個可以用于你的應用程序只是更新一個已經存在的應用程序而不想創建其它的項,但是請不要完全的禁止卸載功能(通過 Uninstallable=no)。
當這個關鍵字設置為 no 時,UpdateUninstallAppName 通常也設置為 no .
[Setup]: OverwriteUninstRegEntries
說明:
1.3 版本以后已廢棄。該關鍵字已經不再被支持并且被忽略。在 Inno Setup 1.3.6 及以后的版本中,它的功能作為如果設置為 1 優先版本的 OverwriteUninstRegEntries 關鍵字(這是默認的設置)。
[Setup]: DirExistsWarning
有效值: auto, yes 或 no
默認值: auto
說明:
當設置為 auto 時,即默認的設置,如果用戶在選擇目標文件夾向導頁中選擇了一個已經存在的文件夾,安裝程序將顯示“文件夾: … 已經存在,以愿意將程序安裝到這個文件夾下面嗎?”的消息,除非有相同的應用程序的其它版本已經安裝并且也選擇了和上次安裝時相同的目錄(僅如果 UsePreviousAppDir 是 yes ,即默認設置)。
當設置為 yes 時,如果用戶選擇了已存在的目錄安裝程序將始終顯示“目錄已存在的消息”。
當設置為 no 時,安裝程序決不會顯示“目錄已存在的消息”。
[Setup]: DisableDirExistsWarning
有效值: yes 或 no
默認值: no
說明:
到版本 1.3.6 時已經廢棄。使用 DirExistsWarning 代替。
編譯器仍然承認 DisableDirExistsWarning,但是如果 DisableDirExistsWarning=no 它將被轉換成 DirExistsWarning=auto, 而且 DisableDirExistsWarning=yes 被轉換成 DirExistsWarning=no. 如果同時指定了 DisableDirExistsWarning 和 DirExistsWarning 關鍵字,則優先處理 DirExistsWarning.
[Setup]: DisableDirPage
有效值: yes 或 no
默認值: no
說明:
如果該項設置為 yes, 安裝程序將不會顯示“選擇目標文件夾”向導頁。在這種情況下,它將始終使用默認的目錄名。
[Setup]: DisableFinishedPage
有效值: yes 或 no
默認值: no
說明:
如果該項設置為 yes, 安裝程序將不會顯示“安裝完成”向導頁,并且在一次安裝過程結束后會立即關閉安裝程序。如果在 [Run] 段里面有一個要被執行的程序使用了 nowait 標記,并且你不希望在該程序被啟動之候安裝完成窗口還逗留在后臺,此時該項是有用的。
注意安裝程序認為要重新啟動計算機,或如果指派了一個文件給 [Setup] 段的 InfoAfterFile 關鍵字,都將忽略 DisableFinishedPage 關鍵字。象這些情況,仍然會顯示“安裝完成”向導頁。
[Setup]: DisableProgramGroupPage
有效值: yes 或 no
默認值: no
說明:
如果該項設置為 yes, 安裝程序將不會顯示“選擇程序組”向導頁。在這種情況下,它將使用由 [Setup] 段的 DefaultGroupName 關鍵字指定的組名,或者“(Default)”如果沒有指定組名的話。
[Setup]: AlwaysUsePersonalGroup
有效值: yes 或 no
默認值: no
說明:
通常對于 Windows NT/2000, 如果用戶具有管理員權限,Inno Setup 的 {group} 常量被指向全部用戶(All Users)的開始菜單。如果該項被設置為 yes, 它將始終使用當前用戶的私人文檔(Profile)。
[Setup]: OutputBaseFilename
默認值: setup
說明:
這個關鍵字允許你為輸出的安裝程序文件指定一個不同的名字,這樣一來你就不用在運行完安裝編譯器以后手工為它們改名。
注意:如果 UseSetupLdr 被設置為 no, 輸出文件 SETUP.0 和 SETUP.MSG 的名字是不會被改變的,因為它們是強制編碼(hard-coded)的名字。
示例: OutputBaseFilename=MyProg100
[Setup]: UninstallFilesDir
默認值: {app}
說明:
指定存放卸載程序文件“unins*.*”的目錄。
注意:對于同一個應用程序的更新版本不應該將它賦一個不同的值,這樣一來安裝程序就不能在以前的版本中找到卸載記錄,因此就不能添加到該應用程序。
示例: UninstallFilesDir={app}\uninst
[Setup]: UninstallDisplayIcon
說明:
讓你指定一個確定的圖標文件(可以是一個可執行文件或者一個 .ico 文件)來顯示在 Windows 2000 控制面板的“添加刪除程序”的卸載項當中,文件名通常以一個目錄常量開始。
如果指定的文件包含多個圖標,你可以加上“,n”后綴以指定一個圖標索引,這里的 n 是以零為基數的索引數值。
如果沒有指定該關鍵字或者該關鍵字為空,Windows 將自己選擇一個圖標,當然這個可能是你不太喜歡的圖標。
示例:
UninstallDisplayIcon={app}\MyProg.exe
UninstallDisplayIcon={app}\MyProg.exe,1
[Setup]: UninstallDisplayName
說明:
讓你為控制面板的“添加/刪除程序”中的程序項指定一個制定的名字。如果未指定該關鍵字或該關鍵字為空,安裝程序將使用 [Setup] 段中的 AppVerName 關鍵字的名字(就像老版本的 Inno Setup 一樣)。
由于 Windows 9x 的控制面板的“添加/刪除程序”項的限制,UninstallDisplayName 不能超過 63 個字符。
示例:
UninstallDisplayName=My Program
[Setup]: UninstallIconName
說明:
你能夠使用該關鍵字給安裝程序創建的卸載圖標指定一個制定的名字(參見AlwaysCreateUninstallIcon)。如果該關鍵字為空或沒有指定,安裝程序將其命名為“卸載 App-Name”,這里的“App-Name”是由 [Setup] 段的關鍵字 AppName 指定的。
注意: 記住 Windows 95/NT 4+ 的應用程序圖標是作為文件直接存儲的,這樣一來普通文件所不允許使用的字符都不能用來作為應用程序圖標的名稱。
示例: UninstallIconName=Uninstall My Program
[Setup]: UninstallLogMode
有效值: append, new 或 overwrite
默認值: append
說明:
append, 默認設置,如果可能,通知安裝程序添加到一個已存在的卸載記錄。
new, 同 Inno Setup 1.3 版本以前的版本的行為是一致的,通知安裝程序始終創建一個新的卸載記錄。
overwrite 通知安裝程序要覆蓋相同的應用程序的任何已存在的卸載記錄而不是添加(這是不被推薦的)。相同的規則添加到已存在的記錄應用于覆蓋已存在的記錄。
示例: UninstallLogMode=append
[Setup]: UpdateUninstallAppName
有效值: yes 或 no
默認值: yes
說明:
如果為 yes, 當添加到一個已存在的卸載記錄時,安裝程序將以當前的安裝程序的 AppName 替換在卸載記錄中的 AppName. 卸載記錄中的 AppName 決定了卸載程序顯示的標題。如果你的安裝程序只是一個升級或附加到一個已存在的程序,并且你不想改變卸載程序的標題,那么你可以設置該值為 no.
[Setup]: DefaultGroupName
說明:
該關鍵字的值是默認的“程序管理器/開始菜單”程序組的名稱,它被“選擇程序組”向導頁使用。如果該關鍵字為空或沒有指定的話,它將會使用“(默認)”作為其名稱。
注意: 記住 Windows 95/NT 4+ 的應用程序圖標是作為文件直接存儲的,這樣一來普通文件所不允許使用的字符都不能用來作為應用程序圖標的名稱。
示例: DefaultGroupName=My Program
[Setup]: DisableStartupPrompt
有效值: yes 或 no
默認值: no
說明:
如果該值被設為 yes, 安裝程序將不會顯示“準備安裝…,你希望繼續嗎?”的提示。
如果 UseSetupLdr 被設置為 no 該值將不會產生作用。
[Setup]: DiskSpanning
有效值: yes 或 no
默認值: no
說明:
決定編譯器是創建一個單獨的 SETUP.EXE, 還是把它分割成為幾個文件以適合于放到分開的軟磁盤上。當這個關鍵字被設置為 yes, 磁盤生成是允許的,將輸出文件 SETUP.EXE 和 SETUP.1 復制到第一個磁盤上,SETUP.2 復制到第二個磁盤上,等等。
[Setup]: DiskSize
默認值: 1457664 (一個 1.44MB 軟磁盤的大小)
說明:
指定了一個磁盤的可用空間統計數值的字節值。
如果 [Setup] 段的關鍵字 DiskSpanning 沒有允許磁盤輸出則這個關鍵字就會被忽略。
[Setup]: DiskClusterSize
默認值: 512 (軟磁盤的標準的簇的大小)
說明:
它指定了磁盤介質的簇的大小。安裝編譯器需要知道該值為了適當的填充每一個磁盤的容量。
如果 [Setup] 段的關鍵字 DiskSpanning 沒有允許磁盤輸出則這個關鍵字就會被忽略。
[Setup]: ReserveBytes
默認值: 0
說明:
指定了應該在第一張磁盤上保留的最小空閑字節數,這樣可以用于將其它的不是安裝程序部分的文件復制到第一張磁盤上,比如說一個自述文檔。
安裝編譯器將把這個數值取整為最接近的簇。
如果 [Setup] 段的關鍵字 DiskSpanning 沒有允許磁盤輸出則這個關鍵字就會被忽略。
[Setup]: DontMergeDuplicateFiles
有效值: yes 或 no
默認值: no
說明:
通常兩個具有相同的源文件的項將只會被存儲和壓縮一次。如果你的安裝程序中有一組相同的文件,在腳本中使他們只想相同的源文件,這樣你的安裝程序的能夠明顯縮小。如果由于某些原因你希望禁止這個功能,設置該關鍵字為 yes .
[Setup]: AllowNoIcons
有效值: yes 或 no
默認值: no
說明:
這個用于決定安裝程序是否顯示一個“不創建任何圖標”的復選框,這樣使用戶能夠跳過創建程序圖標的過程。如果該項為 no 將不會顯示復選框,如果為 yes 則將被顯示。
如果安裝程序運行在 NT 3.51 上時選擇了“不創建任何圖標”的復選框,那么用戶能夠徹底卸載應用程序的辦法只有執行應用程序目錄下面的 unins???.exe 文件。因為這個原因,我們推薦你保留 AllowNoIcons 設置為 no.
[Setup]: AllowRootDirectory
有效值: yes 或 no
默認值: no
說明:
當設置為 no 時,即默認的,用戶將不能被允許在“選擇目錄頁”向導中輸入一個根目錄(就像“C:\”)。
[Setup]: AlwaysRestart
有效值: yes 或 no
默認值: no
說明:
當設置為 yes, 安裝程序始終會在一次成功的安裝過程結束后提示用戶重新啟動系統,而不管這是不是必須的(因為在 [Files] 段的一些項當中帶有 restartreplace 標記)。
[Setup]: MessagesFile
默認值: compiler:DEFAULT.ISL
說明:
指定要讀取的默認信息的文件的名稱。運行安裝編譯器時該文件必須位于你的安裝程序的源目錄中,除非指定了一個全程路徑名稱,或者路徑名是以“compiler:”作為其前綴,這樣它會在編譯器的目錄當中查找該文件。
當指定了多個文件時,它們時按照它們所排列的順序被讀取的,因而最后的消息文件中的消息就會覆蓋其先前的消息文件。
請參見 [Messages] 段幫助主題關于 .isl 文件格式的詳細資料。
示例: MessagesFile=compiler:czech.isl
MessagesFile=compiler:default.isl,compiler:mymessages.isl
[Setup]: LicenseFile
說明:
指定一個可選的許可協議文件的名稱,為 .txt 或 .rtf (豐富文本)格式,它在用戶選擇程序的目標文件夾之前被顯示。運行安裝編譯器時該文件必須位于你的安裝程序的源目錄中,除非指定了一個全程路徑名稱,或者路徑名是以“compiler:”作為其前綴,這樣它會在編譯器的目錄當中查找該文件。
示例: LicenseFile=license.txt
[Setup]: InfoBeforeFile
說明:
指定一個可選的自述文檔(Readme)的名稱,為 .txt 或 .rtf (豐富文本)格式,它在用戶選擇程序的目標文件夾之前被顯示。運行安裝編譯器時該文件必須位于你的安裝程序的源目錄中,除非指定了一個全程路徑名稱,或者路徑名是以“compiler:”作為其前綴,這樣它會在編譯器的目錄當中查找該文件。
示例: InfoBeforeFile=infobefore.txt
[Setup]: InfoAfterFile
說明:
指定一個可選的自述文檔(Readme)的名稱,為 .txt 或 .rtf (豐富文本)格式,它會在安裝成功以后被顯示。運行安裝編譯器時該文件必須位于你的安裝程序的源目錄中,除非指定了一個全程路徑名稱,或者路徑名是以“compiler:”作為其前綴,這樣它會在編譯器的目錄當中查找該文件。
這個不同于代有 isreadme 標記的文件項,它的文本是作為向導的一頁被顯示的,而后者顯示于一個單獨的記事本窗口。
示例: InfoAfterFile=infoafter.txt
[Setup]: ChangesAssociations
有效值: yes 或 no
默認值: no
說明:
當設置為 yes 時,安裝程序會在其安裝過程結束時告訴資源管理器要刷新它的文件關聯信息,并且卸載程序在其卸載過程結束時也會去這樣作。如果安裝程序運行在 Windows NT 3.51 上時這個關鍵字時不起作用的。
如果你的安裝程序創建了一個文件關聯但是沒有將 ChangesAssociations 設置為 yes, 該文件類型的正確的圖標很可能不會被顯示知道用戶注銷或者重新啟動計算機。
[Setup]: UsePreviousAppDir
有效值: yes 或 no
默認值: yes
說明:
當該關鍵字被設置為 yes 時,即默認值,再安裝程序啟動時將會在注冊表中查找看是否有相同的應用程序已經被安裝,如果是這樣,它將使用先前的安裝程序的目錄作為默認的目錄提供給用戶的向導。
注意只有 Inno Setup 1.3.1 和其后續版本才會在注冊表中保存安裝的目錄,就是說安裝程序不會“看見”老版本的 Inno Setup 安裝的應用程序。
[Setup]: UsePreviousGroup
有效值: yes 或 no
默認值: yes
說明:
當該關鍵字被設置為 yes 時,即默認值,再安裝程序啟動時將會在注冊表中查找看是否有相同的應用程序已經被安裝,如果是這樣,它將使用先前的安裝程序的開始菜單組作為默認的開始菜單組提供給用戶的向導。
注意只有 Inno Setup 1.3.1 和其后續版本才會在注冊表中保存安裝的目錄,就是說安裝程序不會“看見”老版本的 Inno Setup 安裝的應用程序。
[Setup]: Password
說明:
指定一個口令,在安裝過程開始時提示用戶輸入。
如果使用了一個口令,重要的是要緊記并沒有加密技術被使用,并且 Inno Setup 的源代碼是完全開放的,對于一個個別的富有經驗的人來說從安裝程序中移去口令的保護不是十分困難的。使用口令僅僅起到一個阻止那些沒有得到授權的人使用你的安裝程序。
[Setup]: WizardImageFile
默認值: compiler:WIZIMAGE.BMP
說明:
指定要在安裝程序向導左側顯示的位圖文件的名稱。運行安裝編譯器時該文件必須位于你的安裝程序的源目錄中,除非指定了一個全程路徑名稱,或者路徑名是以“compiler:”作為其前綴,這樣它會在編譯器的目錄當中查找該文件。
當前還不支持 256 色位圖,因為尚未使用調色板句柄。位圖的最大尺寸是 117x231 象素。
示例: WizardImageFile=myimage.bmp
[Setup]: WindowShowCaption
有效值: yes 或 no
默認值: yes
說明:
如果設置為 no, 安裝程序將會是真正的“全屏幕” ―― 它沒有標題欄和邊框,并且會位于任務欄的前面。
[Setup]: WindowStartMaximized
有效值: yes 或 no
默認值: yes
說明:
如果設置為 no, 安裝程序啟動時不會初始為最大化,這樣會導致藏起任務欄。
[Setup]: WindowResizable
有效值: yes 或 no
默認值: yes
說明:
如果設置為 no, 在安裝程序背景窗口不是最大化狀態時用戶將不能調整其大小。
[Setup]: WindowVisible
有效值: yes 或 no
默認值: yes
說明:
如果設置為 no, 安裝程序背景窗口將是不可見的 ―― 只有向導和安裝過程窗口。
[Setup]: WizardImageBackColor
有效值: 一個值形如 $bbggrr, 這里的 rr, gg 和 bb 指定了兩位的亮度值(以十六進制表示)分別為紅色,綠色和藍色。或者也可以是下列預定義的顏色名稱之一:clBlack(黑色),clMaroon(暗紅),clGreen(綠色),clOlive(橄欖綠),clNavy(深藍),clPurple(紫色),clTeal(深青),clGray(灰色),clSilver(淺灰),clRed(紅色),clLime(淺綠),clYellow(黃色),clBlue(藍色),clFuchsia(紫紅),clAqua(青綠),clWhite(白色)。
默認值: clTeal
說明:
該關鍵字指定了用于填充向導位圖(由 WizardImageFile 指定)周圍的未使用區域的背景顏色。
[Setup]: SourceDir
說明:
給腳本指定一個新的源目錄sourcedirectorynotes。
示例: SourceDir=c:\files
[Setup]: OutputDir
說明:
給腳本指定一個新的輸出目錄,這是安裝編譯器放置輸出的 SETUP.* 文件的地方。默認情況下它在含有腳本文件的目錄下創建一個“OUTPUT”子目錄。
示例: OutputDir=c:\output
其它
關于 Program Files 目錄的說明
Program Files 目錄歷來就只被 Windows 95/NT 4+ 支持。在 NT 3.51 上一個“模擬的” Program Files 目錄被創建于系統驅動器目錄下硬代碼名稱“\Program Files”。
源目錄
默認情況下,如果沒有包含全程路徑名,安裝編譯器期望在與腳本文件相同的目錄中找到在腳本中 [Files] 段引用的 Source 參數的文件和 [Setup] 段引用的文件。要指定一個不同的源目錄,在腳本的 [Setup] 段中創建一個 SourceDir 關鍵字。
使用版本創建編號和(或)服務包級別
在 MinVersion 和 OnlyBelowVersion 中的版本號能夠包含版本創建編號(Build numbers)和(或)服務包級別(service pack levels) 例如:5.0.2195, 5.0sp1, 5.0.2195sp1。如果一個版本創建編號沒有被指定或者為零,安裝程序將不會檢查版本創建編號。如果一個服務包級別沒有被指定或者為零,安裝程序會將其解釋為“沒有服務包”。注意安裝程序只能在 NT 4.0 及其后續版本中檢查服務包級別,所以指定“3.51sp5”去檢查NT 3.51 SP5 將不會工作。
關于"yes" 和 "no" 的說明
為了保持和舊版本 Inno Setup 的兼容性,1 和 0 可以分別的代替 yes 和 no 使用。
另外,它也允許 true 和 false 代替 yes 和 no 使用。
相同的應用程序
“相同的應用程序” 涉及到兩個分開的安裝程序共享一個相同的 AppId 設置 (或者如果 AppId 沒有設置,那么有相同的 AppName 設置).
添加到已存在的卸載記錄
當一個新版本的應用程序被安裝并覆蓋一個已存在的版本時,并不創建一個新的卸載記錄文件(unins???.dat),安裝程序會在默認的情況下尋找并添加到一個已存在的屬于相同的應用程序并在相同的目錄中的卸載記錄文件中,這樣,當應用程序被卸載時,所有的不同的安裝程序所做的改變將會被撤銷(開始于最近的安裝程序)。
卸載程序將會使用最近的應用程序的安裝程序的消息(messages)。然而,有一個例外:如果一個安裝程序被一個舊版本的 Inno Setup 所創建,它包含一個比用戶系統中的已存在的版本還要舊的卸載程序,兩個卸載程序的消息都不會被替換,盡管在這種情況下卸載記錄仍然會被添加,因為它的文件格式是向后兼容的。
卸載程序顯示的應用程序的名稱將會與最近安裝程序中 [Setup] 段的關鍵字 AppName 的值相同,除非 UpdateUninstallAppName 被設置為 no.
卸載記錄添加功能是不熟悉的 Inno Setup 1.3。如果你希望禁止它,設置 [Setup] 段的關鍵字 UninstallLogMode.
注意:安裝程序只能添加到被 Inno Setup 1.3.1 (及其后續版本)的安裝程序創建的卸載記錄文件中
posted on 2007-11-23 09:10
阿蜜果 閱讀(3323)
評論(0) 編輯 收藏 所屬分類:
Inno Setup