Inno设置和Check中的两个条件

时间:2018-04-11 12:58:20

标签: inno-setup pascalscript

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

我的应用程序有两种模式,即用户在安装开始时选择的计算机和客户端。如果选择了客户端模式,则应用程序必须以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";

如何添加我的应用程序仅以条件&#34启动的条件;选择客户端模式"。 (ClientRadioButton.Checked

1 个答案:

答案 0 :(得分:4)

Check parameter文档说:

  

除了单个名称,您还可以使用布尔表达式。有关布尔表达式的示例,请参阅Components and Tasks parameters

Components and Tasks parameters文档说:

  

除了空格分隔列表外,您还可以使用布尔表达式作为组件和任务参数。支持的运算符包括notandor。 ...

因此,添加一个辅助函数,如IsClientMode

function IsClientMode: Boolean;
begin
  Result := ClientRadioButton.Checked;
end;

使用IsWin64布尔运算符:

将其与现有的and条件相结合
[Registry]
Check: IsWin64 and IsClientMode; ...
Check: (not IsWin64) and IsClientMode; ...