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

Inno Setup : Create Uninstall Registry Key only when needed

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

例如,如果我设置一个条件来创建卸载注册表项, 它只能在条件为真时创建。 否则不得创建卸载注册表项。

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

更新问题

我写的代码是:

[Setup]
CreateUninstallRegKey=RegKeyDeterminer

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

使用此代码,始终会创建卸载注册表项。 (应该是我写的代码有问题)

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

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

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

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

谢谢。

CreateUninstallRegKey directive can take a boolean expression/function作为其值。

因此,当您需要创建密钥时,只需将函数实现到 return True,否则实现 False

 [Setup]
 CreateUninstallRegKey=CreateKey

 [Code]

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