我可以使用applescript在MacOSX上实现我的目标,AppleScript会安装类似文本的文件,然后将几行文本插入到同一文件夹中的程序设置文件中。最终窗口具有主程序的启动选项。 对于Windows,Inno安装程序会安装该文件,然后安装第二个文件,该文件“替换”用户程序appdata设置文件夹中的设置文件(根据程序开发人员的建议。)这对新用户很好,但有经验的用户不希望他们的主要设置文件已被替换。
我的目标是复制Mac进程。我知道的唯一方法是使用批处理文件(适用于Win XP和8)将文本插入磁盘上已有的设置文件中。 AFAIK批处理文件需要位于同一文件夹中。因此,安装程序会安装初始文件,然后安装批处理文件。 这个批处理exe文件需要“运行”,我想找到一个立即删除批处理文件的方法。然后该过程结束并进入最终的Inno Setup窗口。这是可能的,如果是的话,怎么样? 如果可能的话,一些示例代码将是理想的。
如果有比使用批处理文件更好的方法,那么这可能是更好的解决方案,因此无需删除任何文件。
我在过去一年中通过StackOverflow学习了很多关于使用Inno Setup的知识,但是找不到上述解决方案。这是一个社区项目。
答案 0 :(得分: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;
您可以从位于Inno Setup Examples文件夹中的CodeExample1.iss
文件中找到调用上述函数的示例。