【问题标题】:Create XML task file with installation path before running schtask.exe in Inno Setup在 Inno Setup 中运行 schtask.exe 之前使用安装路径创建 XML 任务文件
【发布时间】: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 文件中的此路径?

【问题讨论】:

    标签: xml inno-setup windows-task-scheduler


    【解决方案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)创建文件。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 2013-04-06
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      相关资源
      最近更新 更多