0

我正在使用 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() 函数。我错过了什么?

4

1 回答 1

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);
于 2018-01-16T06:45:49.153 回答