我正在尝试使用XML文件中的计划任务创建Inno Setup。计划的任务是:我的应用程序需要从用户登录开始。
在Inno安装脚本中:
[Run]
Filename: "schtasks.exe";
\Parameters: "/create /XML ""{app}\Schedule.xml"" /TN AppStart"
<{1>}文件中的:
Schedule.xml
这可以正常工作。但是我想将XML文件中的应用程序路径设置为<Actions Context="Author">
<Exec>
<Command>"C:\Program Files\MyApp\MyApp.exe"</Command>
</Exec>
</Actions>
,因为用户可以在任何位置安装它。如何在设置的运行时更改XML文件中的此路径?
答案 0 :(得分:1)
使用/TR
开关,而不是使用XML指定要运行的路径。
[Run]
Filename: "schtasks.exe"; \
Parameters: "/Create /TR ""{app}\MyApp.exe"" /TN AppStart"
如果由于某种原因坚持使用XML,则必须动态创建文件。
[Run]
Filename: "schtasks.exe"; \
Parameters: "/Create /XML ""{tmp}\Schedule.xml"""; BeforeInstall: CreateScheduleXML
[Code]
procedure CreateScheduleXML;
var
FileName: string;
AppPath: string;
begin
FileName := ExpandConstant('{tmp}\Schedule.xml');
AppPath := ExpandConstant('{app}\MyApp.exe');
{ Create file here }
end;
您可以使用SaveStringsToUTF8File
等简单函数创建文件,也可以使用MSXML2.DOMDocument
COM对象(参见How to read and write XML document node values?)。