Inno Setup和Check中的两个条件

Ale*_*lex 2 inno-setup pascalscript

我正在为我的应用程序编写一个简单的Inno Setup脚本。我做了我想要的所有东西,但是我阻止了某些事情。

我的应用程序有两种模式,用户在安装开始时选择“计算机”和“客户端”。如果选择了客户端模式,则应用程序必须从Windows启动。另外,我的应用程序可以同时安装在Windows版本(32位和64位)上,因此注册表项的路径不同。

为了使它从Windows开始,我在Inno安装脚本的末尾添加了它:

[Registry]
Check: IsWin64; Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; Permissions: users-full; ValueName: "MyApp"; ValueData: "{app}\AutoexecX86.cmd";

Check: Not IsWin64; Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; Permissions: users-full; ValueName: "MyApp"; ValueData: "{app}\Autoexec.cmd";
Run Code Online (Sandbox Code Playgroud)

如何添加条件,即我的应用仅以条件“选择客户端模式”开始。(ClientRadioButton.Checked

Mar*_*ryl 5

Check参数文档说:

除了单个名称,您还可以使用布尔表达式。有关布尔表达式的示例,请参见组件和任务参数

组件和任务参数文档说:

除了以空格分隔的列表之外,您还可以使用布尔表达式作为“组件”和“任务”参数。支持的运营商包括notand,和or。...


因此,添加一个辅助功能,如IsClientMode

function IsClientMode: Boolean;
begin
  Result := ClientRadioButton.Checked;
end;
Run Code Online (Sandbox Code Playgroud)

IsWin64使用and布尔运算符将其与您现有的条件结合起来:

[Registry]
Check: IsWin64 and IsClientMode; ...
Check: (not IsWin64) and IsClientMode; ...
Run Code Online (Sandbox Code Playgroud)