0

我可以使用 applescript 在 MacOSX 上实现我的目标,它安装一个类似文本的文件,然后在同一文件夹中的程序设置文件中插入几行文本。最终窗口有一个主程序的启动选项。对于 Windows,Inno Setup 会安装该文件,然后安装第二个文件,该文件会“替换”用户程序 appdata 设置文件夹中的设置文件(如程序开发人员所建议的那样)。这对新用户来说很好,但有经验的用户不会想要他们的主要设置文件被替换。

我的目标是复制 Mac 流程。我知道的唯一方法是使用批处理文件(适用于 Win XP 和 8)将文本插入到磁盘上已有的设置文件中。AFAIK批处理文件需要在同一个文件夹中。因此,安装程序安装初始文件,然后是批处理文件。这个批处理 exe 文件需要“运行”,我想找到一种在之后立即删除批处理文件的方法。然后该过程完成并进入最终的 Inno Setup 窗口。这可能吗?如果可以,怎么做?如果可能,一些示例代码将是理想的。

如果有比使用批处理文件更好的方法,那么这可能是一个更好的解决方案,因此无需删除任何文件。

在过去的一年里,我通过 StackOverflow 学到了很多关于使用 Inno Setup 的知识,但找不到上述问题的解决方案。这是一个社区项目。

4

1 回答 1

1

您可以使用Inno Setup Pascal Scripting支持及其支持类和函数。像这样的东西应该工作:

procedure CurStepChanged(CurStep: TSetupStep);
var
  Lines: TStringList;
  FileName: string;
begin
  if CurStep = ssPostInstall then
  begin
    FileName := ExpandConstant('{app}');
    FileName := AddBackslash(FileName) + 'YourFile.txt';
    Lines := TStringList.Create;

    // Load existing lines from file
    Lines.LoadFromFile(FileName);
    // Add your information to the end of the file
    Lines.Append('Your changed information'); // Repeat as needed
    Lines.SaveToFile(FileName);
    Lines.Free;
  end;
end;

CodeExample1.iss您可以从位于 Inno Setup Examples 文件夹中的文件中找到调用上述函数的示例。

于 2013-05-30T13:37:24.873 回答