如果我使用 Windows 任务计划程序安排一项任务,比如从现在起 2 分钟后执行,并且由于某种原因,计算机从现在起 1 分钟后关闭,3 分钟后打开,那么安排的任务还会运行吗?
如果没有,我该怎么做才能模仿这个功能?
我正在编写一个 Java 应用程序,需要执行各种系统命令,我希望操作系统实际管理任务执行阶段。我真正需要的是让操作系统尽快执行任务。
答案1
不,它不会执行。Vista(或更高版本)中的任务计划程序可以配置为运行错过的实例,但 XP 不能。请参阅下面的复选框错过预定的启动时间后尽快运行任务。
但是,这三种方式都可以设置为在计算机处于睡眠或休眠状态时唤醒它。
答案2
答案3
正如所说,在 XP 中您无法执行此操作,但在 Vista+ 中可以。某些程序(如 Acronis True Image)使用自己的调度程序来克服系统限制。
要在 XP 中模拟此操作,您可以编写一个程序(谷歌搜索没有找到任何公开可用的现有程序),计划在系统启动时运行,该程序将
- 检查系统日志中上次关机和启动的时间(或者更确切地说,调度程序服务的关机和启动时间)
- 检查任务计划
- 运行那些开始时刻在间隔内的
注意事项:
- 除非你能以某种方式调用相应的调度程序的功能,否则你必须手动解析调度来计算下一个计划的开始时间从过去的某个特定时刻开始
- XP 中没有“尽快运行”的任务标志,你必须发明一个替代品(或者不加区别地抓取所有内容)
- 由于你的任务在系统启动时运行,如果某些任务需要尚未初始化的功能,则它们可能会失败