如何使用 Inno Setup 添加计划任务

Posted

技术标签:

【中文标题】如何使用 Inno Setup 添加计划任务【英文标题】:How to add a scheduled task with Inno Setup 【发布时间】:2012-08-28 07:49:38 【问题描述】:

我有一个小型控制台应用程序,它安装在我的(更大的)应用程序中。设置是用 Inno Setup 创建的,效果很好。

我希望 Inno Setup 向 Windows 调度程序(启动控制台应用程序)添加一个或多个任务。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

只需将task scheduler command line 条目添加到脚本的[Run] 部分。该部分中的条目在程序安装成功后执行。

【讨论】:

非常感谢 TLama!我不知道会这么简单。这是我添加到 Inno 脚本的行:[Run] Filename: schtasks.exe;参数:" /create /tn "ESS pushdata" /tr app\pushdata.exe /sc daily "【参考方案2】:

举一个比@TLama 的回答更具体的例子:

例如,要安排一个任务以每小时使用某个参数运行您的应用程序,请使用:

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

注意:

命令行(和任务名称)周围的double double-quotes 和应用程序路径周围的单引号; /F 开关覆盖任何现有的同名任务(对于重新安装/升级很重要)。

查看schtasks.exe command 和[Run] section 的完整文档。


当您要调试非工作任务创建时,请使用 cmd.exe /K 启动 schtasks(当然,删除 runhidden 标志):

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

这样会保留带有错误消息的控制台窗口。

见Debugging non-working batch file or command executed from Inno Setup installer。


有关卸载,请参阅 Delete Task Scheduler task at Uninstall?

【讨论】:

以上是关于如何使用 Inno Setup 添加计划任务的主要内容,如果未能解决你的问题,请参考以下文章

在 Inno Setup 中运行 schtask.exe 之前使用安装路径创建 XML 任务文件

Inno Setup区段之Tasks篇

inno setup如何做快速启动栏?

如何为一组任务确定计划,估计每个任务所需的时间?

Inno Setup如何添加附件让用户选择安装

如何使用Inno Setup Compiler制作安装软件包