標籤:
有些程式需要隨系統啟動,或者需要建立某些檔案關聯等問題,這些都是通過在安裝程式中對註冊表進行操作的結果。Inno Setup中通過[registry]段實現對註冊表的操作。
本段說明:
參數列表:
參數
說明
Root
根鍵。必須是下列中的一個:
HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)
Subkey
子鍵名,可以包含常量
ValueType
實值型別,必須是下列中的一個:
none
string
expandsz
multisz
dword
binary
如果指定了none (預設設定),安裝程式將建立一個沒有索引值的鍵,在這種情況下,ValueName和ValueData 參數將被忽略。
ValueName
要建立的值名,可以包含常量,如果是空白的,將寫入到“預設”值
ValueData
值的資料
Permissions
指定登入註冊表鍵ACL (存取控制清單) 的附加許可權,該參數只在Windows 2000或更高版本中有效,可用的參數是full、modify和read
Flags
是額外選項設定。多個選項可以使用空格隔開。支援下面的選項:
createvalueifdoesntexist
deletekey
deletevalue
dontcreatekey
noerror
preservestringtype
uninsclearvalue
uninsdeletekey
uninsdeletekeyifempty
uninsdeletevalue
下面的例子將會使得安裝程式在作業系統啟動後自動運行。
[setup]
;全域設定,本段必須
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0
Compression=lzma2/max
ShowLanguageDialog=yes
[components]
Name: main; Description:"主程式(必選)";Types:full compact custom;Flags: fixed
Name: data; Description:"資料檔案";Types:full
Name: help;Description:"協助檔案";Types:full compact
[files]
Source: "F:\desktop\test\ipmsg.exe"; DestDir: "{app}";Components:main
Source: "F:\desktop\test\bin.dat"; DestDir: "{app}";Components:data
Source: "F:\desktop\test\help.chm"; DestDir: "{app}" ;Components:help
Source: "F:\desktop\test\readme.txt"; DestDir: "{app}";components:help;Flags:isreadme
[registry]
;本段處理常式在註冊表中的索引值
Root:HKLM;Subkey:SOFTWARE\Microsoft\Windows\CurrentVersion\Run;ValueType: string; ValueName:TEST;ValueData:{app}\ipmsg.exe;Flags: uninsdeletevalue
一路Next到底,安裝完成後可以檢查註冊表:
確實添加到註冊表中去了,通過金山衛士也證實了這一點:
由於使用的標誌位是uninsdeletevalue,所以卸載軟體將會自動刪除該值,如果使用uninsdeletekey的話,該鍵下的其他值都會被刪除,這不是一個很好的方法,除非你確定使用的是自己的專用鍵,否則不推薦使用。
Inno Setup入門(十)——操作註冊表