根据 Inno Setup 中的任务选择,将 "true"/"false" 写入 INI 文件

Write "true"/"false" to an INI file based on task selection in Inno Setup

[Tasks] 部分我有:

[Tasks]
Name: "userexpericeneimprovement"; \
    Description: "{cm:JoinUserExpericeneImprovement}"; \
    GroupDescription: "{cm:AdditionalIcons}"; MinVersion: 0.0,5.0;

并且在 [INI] 中是这个特定的命令:

[INI]
FileName: "{app}\ceip.ini"; Section: "General"; Key: "enabled"; \
    String: "{code:GetUserJoin}";

我的目的是检查所选任务,然后 [Code] {code:GetUserJoin} 部分将在 ceip.ini 文件中填写为 "true""false" 选中或未选中。

即使没有使用任何 Pascal 脚本 Tasks parameter:

,这也足以实现
[INI]
FileName: "{app}\ceip.ini"; Section: "General"; Key: "enabled"; String: "true"; \
    Tasks: userexpericeneimprovement
FileName: "{app}\ceip.ini"; Section: "General"; Key: "enabled"; String: "false"; \
    Tasks: not userexpericeneimprovement

如果你想使用 Pascal 脚本,使用 WizardIsTaskSelected function:

实现也很简单
[INI]
FileName: "{app}\ceip.ini"; Section: "General"; Key: "enabled"; \
    String: "{code:GetUserJoin}";
[Code]
function GetUserJoin(Param: string): string;
begin
  if WizardIsTaskSelected('userexpericeneimprovement') then Result := 'true'
    else Result := 'false';
end;