簡述
創建,修改或刪除注冊表鍵/值
[Registry]
-
Root: 必需的 【HKCU、HKLM、HKCR、HKU、HKCC】
-
Subkey: 必需的 鍵值key
-
valueType 值類型 [
none
string REG_SZ
expandsz REG_EXPAND_SZ
multisz REG_MULTI_SZ
dword REG_DWORD
qword REG_QDWORD
binary REG_BINARY ] -
valueName key
-
valueData 值
-
Permissions 訪問控制權限列表 添加權限
-
Flags
此參數是一組額外選項。可以通過用空格分隔它們來使用多個選項。支持以下選項:createvalueifdoesntexist
當指定了該標志,安裝程序只在如果沒有相同名稱的值存在時創建值。如果值類型是 none,或如果你指定了 deletevalue 標志,該標志無效。deletekey
當指定了該標志,安裝程序在如果條目存在的情況下,先將嘗試刪除它,包括其中的所有值和子鍵。如果 ValueType 不是 none,那么它將創建一個新的鍵和值。為防止意外,安裝期間如果 Subkey 是空白或只包含反斜杠符號,該標志被忽略。
deletevalue
當指定了該標志,安裝程序在如果值存在的情況下,先將嘗試刪除值,如果 ValueType 是 none,那么在鍵不存在的情況下,它將創建鍵以及新值。dontcreatekey
當指定了該標志,如果鍵已經在用戶系統中不存在,安裝程序將不嘗試創建鍵或值。如果鍵不存在,不顯示錯誤消息。一般來說,這個鍵與 uninsdeletekey 標志組合使用,在卸載時刪除鍵,但安裝時不創建鍵。
noerror
如果安裝程序因任何原因創建鍵或值失敗,不顯示錯誤消息。preservestringtype
這只在當 ValueType 參數是 string 或 expandsz 時適用。當指定該標志,並且值不存在或現有的值不是 string 類型(REG_SZ 或 REG_EXPAND_SZ),它將用 ValueType 指定的類型創建。如果值存在,並且是 string 類型,它將用先存在值的相同值類型替換。uninsclearvalue
當卸載程序時,設置值數據為 null 字串(類型 REG_SZ)。該標志不能與 uninsdeletekey 標志組合使用。uninsdeletekey
當卸載程序時,刪除整個鍵,包含其中的所有值和子鍵。這對於 Windows 自身使用的鍵明顯不是一個好方法。你只能用於你的應用程序特有的鍵中。為防止意外,安裝期間如果 Subkey 是空白或只包含反斜杠符號,該標志被忽略。
uninsdeletekeyifempty
當程序卸載時,如果這個鍵的內部沒有值或子鍵,則刪除這個鍵。該標志可以與 uninsdeletevalue 組合使用為防止意外,安裝期間如果 Subkey 是空白或只包含反斜杠符號,該標志被忽略。
uninsdeletevalue
當程序卸載時刪除該值。該標志不能與 uninsdeletekeyifempty 組合使用注意: 在早於 1.1 的 Inno Setup 版本中,你可以使用該標志連同數據類型 none,那么它的功能與“如果空則刪除鍵”標志一樣。這個方法已經不支持了。你必須使用 uninsdeletekeyifempty 標志實現。
code
[Registry]
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\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"