Как добавить запланированную задачу с помощью Inno Setup

У меня есть небольшое консольное приложение, которое устанавливается вдоль моего (большего) приложения. Настройка создана с помощью Inno Setup, которая работает очень хорошо.

Я хочу, чтобы Inno Setup добавила одну или несколько задач в планировщик окон (который запускает консольное приложение). Есть ли способ сделать это?

Ответ 1

Просто добавьте записи task scheduler command line в [Run] вашего script. Записи в этом разделе выполняются после успешной установки программы.

Ответ 2

Чтобы дать более конкретный пример, чем ответ @TLama:

Например, чтобы запланировать задачу для запуска приложения с некоторым параметром каждый час, используйте:

[Run]
Filename: "schtasks"; \
    Parameters: "/Create /F /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1"""; \
    Flags: runhidden

Замечания:

  • двойные двойные кавычки вокруг командной строки (и имени задачи) и одинарные кавычки вокруг пути к приложению;
  • ключ /F чтобы перезаписать любую выходящую задачу с тем же именем (важно для переустановок/обновлений).

См. Полную документацию по команде schtasks.exe и разделу [Run].


Если вы хотите отладить создание неработающей задачи, запустите schtasks с помощью cmd.exe/K (и, конечно же, уберите флаг runhidden):

[Run]
Filename: "{cmd}"; \
    Parameters: "/K schtasks /F /Create /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1"""; 

Таким образом, консольное окно с сообщением об ошибке сохраняется.

См. Отладка нерабочего пакетного файла или команды, выполненной из установщика Inno Setup.