在 Inno Setup 中运行 schtask.exe 之前使用安装路径创建 XML 任务文件
Posted
技术标签:
【中文标题】在 Inno Setup 中运行 schtask.exe 之前使用安装路径创建 XML 任务文件【英文标题】:Create XML task file with installation path before running schtask.exe in Inno Setup 【发布时间】:2017-01-24 01:26:11 【问题描述】:我正在尝试使用 XML 文件中的计划任务创建 Inno Setup。计划任务是:我的应用程序需要以用户登录开始。
在 Inno 设置脚本中:
[Run]
Filename: "schtasks.exe";
\Parameters: "/create /XML ""app\Schedule.xml"" /TN AppStart"
在Schedule.xml
文件中:
<Actions Context="Author">
<Exec>
<Command>"C:\Program Files\MyApp\MyApp.exe"</Command>
</Exec>
</Actions>
这可以正常工作。但我想将 XML 文件中的应用程序路径设置为app\MyApp.exe
,因为用户可以将它安装在任何位置。如何在安装程序的运行时更改 XML 文件中的此路径?
【问题讨论】:
【参考方案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 对象(请参阅Edit installed XML file according to user preferences in Inno Setup)创建文件。
【讨论】:
以上是关于在 Inno Setup 中运行 schtask.exe 之前使用安装路径创建 XML 任务文件的主要内容,如果未能解决你的问题,请参考以下文章