[HKEY_LOCAL_MACHINE\SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999]
"Product_Path"="W:\\Prince of Persia T2T""Product_Executable"="PrinceOfPersia.exe""Product_Language"="9""Product_Release"="Retail NA""Profiles_Path"="C:\\Documents and Settings\\All Users\\Application Data"这个写成脚本吧
[Registry] Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999; ValueType: string; ValueName: Product_Path; ValueData: {app}\Prince of Persia T2T Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999; ValueType: string; ValueName: Product_Executable; ValueData: PrinceOfPersia.exe Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999; ValueType: string; ValueName: Product_Language; ValueData: 9 Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999; ValueType: string; ValueName: Product_Release; ValueData: Retail NA Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999; ValueType: string; ValueName: Profiles_Path; ValueData: {commonappdata}
在帮我解释下 "Profiles_Path"="C:\\Documents and Settings\\All Users\\Application Data" 是游戏的存盘路径 为什么要写成Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia The Two Thrones\1.00.999; ValueType: string; ValueName: Profiles_Path; ValueData: {commonappdata} 这个 {commonappdata} 怎么理解呢?
Root (必需) 描述: 根键。必须是下列值中的一个: HKCR (HKEY_CLASSES_ROOT) HKCU (HKEY_CURRENT_USER) HKLM (HKEY_LOCAL_MACHINE) HKU (HKEY_USERS) HKCC (HKEY_CURRENT_CONFIG) 该值可以带有 32 或 64 的后缀。带 32 后缀的根键值 (例如 HKLM32) 映射到 32 位系统注册表,带 64 后缀的根键值 (例如 HKLM32) 映射到 64 位系统注册表。 带 64 后缀的根键值只能在安装程序在 64 位 Windows 运行时使用,否则将会出错。在支持 32 和 64 位结构的安装程序中,这可以通过添加下列 IsWin64 参数检查来避免,这会在运行于 32 位 Windows 时该条目自动跳过。 不带后缀的根键值 (例如 HKLM) 等于带后缀 32 的值 (例如 HKLM32),除非安装程序运行于 64 位模式,在这种情况下,该值等于带后缀 64 的值 (例如 HKLM64)。 示例: Root: HKCU
Flags (额外选项)请楼主自行设置
Flags 描述: 这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项: createvalueifdoesntexist 当指定了这个标记,安装程序只在如果没有相同名字的值存在时创建值。如果值类型是 none,或如果你指定了 deletevalue 标记,这个标记无效。 deletekey 当指定了这个标记,安装程序在如果条目存在的情况下,先将尝试删除它,包括其中的所有值和子键。如果 ValueType 不是 none,那么它将创建一个新的键和值。 要防止意外,如果子键是空白的或只包含反斜框符号,安装时这个标记被忽略。 deletevalue 当指定了这个标记,安装程序在如果值存在的情况下,先将尝试删除值,如果 ValueType 是 none,那么在键不存在的情况下,它将创建键以及新值。 dontcreatekey 当指定了这个标记,如果键已经在用户系统中不存在,安装程序将不尝试创建键或值。如果键不存在,不显示错误消息。 一般来说,这个键与 uninsdeletekey 标记组合使用,在卸载时删除键,但安装时不创建键。 noerror 如果安装程序因任何原因创建键或值失败,不显示错误消息。 preservestringtype 这只在当 ValueType 参数是 string 或 expandsz 时适用。当指定这个标记,并且值不存在或现有的值不是 string 类型 (REG_SZ 或 REG_EXPAND_SZ),它将用 ValueType 指定的类型创建。如果值存在,并且是 string 类型,它将用先存在值的相同值类型替换。 uninsclearvalue 当卸载程序时,设置值数据为空字符 (类型 REG_SZ)。这个标记不能与 uninsdeletekey 标记组合使用。 uninsdeletekey 当卸载程序时,删除整个键,包含其中的所有值和子键。这对于 Windows 自身使用的键明显不是一个好方法。你只能用于你的应用程序特有的键中。 为防止意外,安装期间如果子键空白或只包含反斜框符号,这个标记被忽略。 uninsdeletekeyifempty 当程序卸载时,如果这个键的内部没有值或子键,则删除这个键。这个标记可以与 uninsdeletevalue 组合使用。 为防止意外,安装期间如果子键空白或只包含反斜框符号,这个标记被忽略。 uninsdeletevalue 当程序卸载时删除该值。这个标记不能与 uninsdeletekeyifempty 组合使用。 注意: 在早于 1.1 的 Inno Setup 版本中,你可以使用这个标记连同数据类型 none,那么它的功能与“如果空则删除键”标记一样。这个方法已经不支持了。你必须使用 uninsdeletekeyifempty 标记实现。 示例: Flags: uninsdeletevalue
[Registry]
//HKEY-LOCAL-MACHINE SOFTWARE GDW SICTS SICTS-CLIENT 3.1.1.0 Product_Path D:\Program Files\SICTS-Client//卸载掉时候删除Root:HKLM;SubKey:SOFTWARE\GDW\SICTS\SICTS-CLIENT\3.1.1.0;ValueType:string;ValueName:Product_Path;ValueData:{app};Flags:uninsdeletevalue