有些程序需要隨系統啓動,或者需要建立某些文件關聯等問題,這些都是通過在安裝程序中對註冊表進行操作的結果。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的話,該鍵下的其他值都會被刪除,這不是一個很好的方法,除非你確定使用的是自己的專用鍵,否則不推薦使用。