Inno setup 通过代码使卸载注册表项有条件
如何通过代码禁用Inno设置 在Inno setup中创建的Mysetup.exe文件接受参数,例如:Inno setup 通过代码使卸载注册表项有条件,inno-setup,Inno Setup,如何通过代码禁用Inno设置 在Inno setup中创建的Mysetup.exe文件接受参数,例如: setup.exe -a 或 如果提供了-a参数,则启用CreateUninstallRegKey,或者如果提供了-b参数,则禁用CreateUninstallRegKey 是否仍然可以通过代码设置CreateUninstallRegKey,或者我必须创建一个函数,然后在脚本部分调用该函数 这解释了如何使用{code:…}常量,但不幸的是,我遇到了以下错误: 谢谢不要使用{code:}表达
setup.exe -a
或
如果提供了-a
参数,则启用CreateUninstallRegKey
,或者如果提供了-b
参数,则禁用CreateUninstallRegKey
是否仍然可以通过代码设置CreateUninstallRegKey
,或者我必须创建一个函数,然后在脚本部分调用该函数
这解释了如何使用{code:…}
常量,但不幸的是,我遇到了以下错误:
谢谢不要使用
{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;
如果我想要一个变量而不是函数名呢?有了这个变量你就倒霉了。您只能为此使用函数。但是,您可以创建一个简单的getter函数,其中只返回某个变量的值。
[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;