Inno Setup:仅在需要时创建卸载注册表项

时间:2016-07-02 17:09:37

标签: inno-setup uninstall registrykey

我需要强制CreateUninstallRegKey部分中的指令[Setup]仅在需要时创建用于卸载的注册表项。

例如,如果我设置条件来创建卸载注册表项, 它必须仅在条件为True时创建。 否则,不得创建卸载注册表项。

如何在Inno Setup中执行此操作?

更新的问题

我写的代码是:

[Setup]
CreateUninstallRegKey=RegKeyDeterminer

[Code]
function RegKeyDeterminer(): Boolean;
  begin
  Result:= ISDoneError = True;
  if ISDoneError = True then Result:= True;
end;

使用此代码,Uninstall注册表项始终在创建。 (我写的代码应该是错误的。)

如果ISDoneError = True,则不得创建卸载注册表项。

如果ISDoneError = False,则必须创建卸载注册表项。

ISDoneError只有True或False值。(它是ISDone.dll中的布尔函数,它是一个动态链接库,用于从7-Zip,RAR,Binary等中提取文件。在Inno Setup中存档。)

这些是条件。 如果您看到任何错误或条件设置错误,请更正我的代码。

谢谢。

1 个答案:

答案 0 :(得分:2)

CreateUninstallRegKey directive可以使用boolean expression/function作为其值。

因此,只需在需要创建密钥时实现函数返回True,否则False

 [Setup]
 CreateUninstallRegKey=CreateKey

 [Code]

 function CreateKey: Boolean;
 begin
   Result := condition;
 end;