转载地址:http://liufzntd.blog.163.com/blog/static/126013492200971872123290/
【问题一:Inno Setup 执行REG文件代码?】
Filename: "{win}\regedit.exe";Parameters:"/s {tmp}\reg.reg" // 静默参数/S
【问题二:安装时,如果已经有同名文件存在,就不更新该文件?】
[Files]
Source: "test.tmp",
激情聊天室;; DestDir: ",
激情聊天室;{app}"; Flags: on
lyifdoesntexist //on
lyifdoesntexist表现只有当这个文件不存在的时候才安装这个文件。
【问题三:卸载时不卸载某一个文件?】
[Files]
Source: "CTL3DV2.DLL"; DestDir: "{sys}"; Flags: uninsneveruninstall //uninsneveruninstall 卸载时,不删除
【问题四:Inno Setup 注册OCX】
[Files]
Source: "xxx\xxx.ocx"; DestDir: "{app}"; Flags: onlyifdoesntexist regserver //注册regserver
【问题五:如何在Inno Setup中设置某选项默认被选择?】
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkedonce //参数Flags包括checkedonce即可
【问题六:Inno Setup 安装新版本之前卸载老版本?】
[code]
if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My_Program_is1', 'UninstallString', ResultStr) then
begin
ResultStr := RemoveQuotes(ResultStr);
Exec(ResultStr, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode)
end
把其中 My_Program 换成自身的 app name 即可!
Flags :该参数是一个额外的可选项,可用空格隔开多个选项。下面是该参数所支撑的选项:
createvalueifdoesntexist :当指定该标志时,安装程序只会在同名键值不存在时创立该键值。该标记在数据类型为none或者指定了deletevalue标记时不会生效。
deletekey :当指定该标记时,安装程序将会先删除整个键(若存在的话),包含其中的所有键值和子键。如果ValueType 为none时,它才会创建新的键和键值。
deletevalue :当指定该标志时,安装程序会先删除这个键值(若存在的话)。如果ValueType 为none并且不曾存在时,它才会创建新的键值。
dontcreatekey :当指定该标记时,如果指定的键在用户的体系中未曾存在时,安装程序不会尝试去创立指定的键或键值。如果指定的键已经存在,将不显示过错信息。典范的例子 就是该标志与uninsdeletekey标记合用,以此到达在卸载时删除键而在安装时不会创建它们。
noerror :无论任何因为而导致安装程序创立该键失败都不会显示过错信息。
preservestringtype :这只在ValueType参数是string或expandsz时使用。当指定了该标记后,如果键值不存在并且它是字符串类型时,它将被换成先前值的雷同类型。
uninsclearvalue :卸载程序时,清空键值的数据(REG_SZ类型)。该标记不能与uninsdeletekey标记合用。
uninsdeletekey :卸载程序时,删除整个键,包含其中所有的键值和子键。显然,在Windows自身的键内时,这不是一个好主张。ni只应在ni软件的私有键中使用它。
uninsdeletekeyifempty :卸载程序时,如果该键没有键值或子键时将其删除。该标记可以与uninsdeletevalue.标记合用。
uninsdeletevalue :卸载程序时删除键值。该标记可以与uninsdeletekeyifempty标记合用。相关的主题文章:
评论