我正在使用TaskService类来创建和编辑Windows计划任务。我遇到的一个问题是如何在现有的计划任务上保存新的触发器。触发器似乎没有保存。
var task = new TaskService().FindTask("My Scheduled Task");
BootTrigger trigger = new BootTrigger();
var td = task.Definition;
//td.Triggers.Count = 1 at this point
td.Triggers.Add(trigger);
//td.Triggers.Count = 2 at this point
所以代码似乎没问题。但是,如果我在Windows中打开计划任务,则只显示1个触发器而不是我添加的触发器。如果我再次运行我的代码,触发计数又回到1,所以看起来应该有一些Commit()或Save()函数。我错过了什么?
答案 0 :(得分:0)
您缺少重新注册任务定义。
var ts = new TaskService();
var task = ts.FindTask("My Scheduled Task");
BootTrigger trigger = new BootTrigger();
var td = task.Definition;
//td.Triggers.Count = 1 at this point
td.Triggers.Add(trigger);
//td.Triggers.Count = 2 at this point
ts.RootFolder.RegisterTaskDefinition("My Scheduled Task", td);