通过代码使卸载注册表项成为条件

Jay*_*asa 3 inno-setup

如何CreateUninstallRegKey通过代码禁用Inno Setup ?

我在Inno Setup中创建的setup.exe文件接受参数,例如:

setup.exe -a
Run Code Online (Sandbox Code Playgroud)

要么

setup.exe -b
Run Code Online (Sandbox Code Playgroud)

如果-a提供了参数,则启用CreateUninstallRegKey,或者如果-b提供了参数,则禁用CreateUninstallRegKey.

无论如何设置CreateUninstallRegKey通过代码或我必须创建一个函数然后调用脚本部分中的函数?

这个帮助页面解释了使用{code:...}常量,但不幸的是我收到了这个错误:

代码和错误消息的屏幕截图

谢谢

TLa*_*ama 5

不要使用{code:}表达式将值传递给布尔类型指令.这样做:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
CreateUninstallRegKey=NeedsUninstallRegKey

[Code]
function CmdLineParamExists(const Value: string): Boolean;
var
  I: Integer;  
begin
  Result := False;
  for I := 1 to ParamCount do
    if CompareText(ParamStr(I), Value) = 0 then
    begin
      Result := True;
      Exit;
    end;
end;

function NeedsUninstallRegKey: Boolean;
begin
  Result := CmdLineParamExists('-a');
end;
Run Code Online (Sandbox Code Playgroud)