以下是用例: - 创建一个新的win任务,立即运行,一旦完成,删除任务。
以下是使用C#创建任务的基本代码。
using (TaskService ts = new TaskService(null))
{
string projectName = "runnowtest" + Guid.NewGuid().ToString();
//create new task
TaskDefinition td = ts.NewTask();
Trigger mt = null;
//setup task as Registration trigger
mt = td.Triggers.AddNew(TaskTriggerType.Registration);
mt.StartBoundary = DateTime.Now;
//delete the task 1 minute after the program ends
td.Settings.DeleteExpiredTaskAfter = new TimeSpan(0, 1, 0);
//run the notepad++ in the task
td.Actions.Add(new ExecAction("notepad.exe"));
//register task
Task output = ts.RootFolder.RegisterTaskDefinition(projectName, td);
//check output
Console.WriteLine(output != null ? "Task created" : "Task not created");
}
API似乎没有将任务标记为运行一次的属性/标志。我试图确保上述任务只运行一次并在此之后立即删除。任何想法都非常感谢!
答案 0 :(得分:2)
我知道它的陈旧但供参考...... 要使用DeleteExpiredTaskAfter,需要给出触发器EndBoundary:
var trigger = new RegistrationTrigger{Delay = TimeSpan.FromSeconds(5), EndBoundary = DateTime.Now.Add(TimeSpan.FromSeconds(50))};
答案 1 :(得分:0)
您可以设置任务XML定义以设置API未直接公开的所有内容。