应用程序打包神器Inno setup

使用方法自行百度,十分简单,一直下一步下一步。

问题合集,来自http://blog.163.com/53_54/blog/static/6013812200710179158720/

【问题一:Inno Setup 执行REG文件代码?】
[Run]
Filename: "{win}\regedit.exe";Parameters:"/s {tmp}\reg.reg" // 静默参数/S


【问题二:安装时,如果已经有同名文件存在,就不更新该文件?】
[Files]
Source: "test.tmp"; DestDir: "{app}"; Flags: onlyifdoesntexist  //onlyifdoesntexist表示只有当这个文件不存在的时候才安装这个文件。


【问题三:卸载时不卸载某一个文件?】
[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自身的键内时,这不是一个好主意。你只应在你软件的私有键中使用它。
uninsdeletekeyifempty  :卸载程序时,如果该键没有键值或子键时将其删除。该标记可以与uninsdeletevalue.标记合用。
uninsdeletevalue  :卸载程序时删除键值。该标记可以与uninsdeletekeyifempty标记合用。

猜你喜欢

转载自blog.csdn.net/shaynerain/article/details/78632448