C# 用TaskScheduler.dll 创建 windows任务计划
最近需要一个创建一个程序被定时执行完成一些周期性的操作。故采用windows 计划任务来完成。
在codeproject中有一个开源项目 可以使用C#调用 来创建windows的计划任务。
地址为: http://www.codeproject.com/KB/cs/tsnewlib.aspx
上代码:
Scheduler sched = new Scheduler(); foreach (Task t in sched.Tasks) { Console.WriteLine(t.ToString()); foreach (Trigger tr in t.Triggers) Console.WriteLine(tr.ToString()); } // Set only trigger on an existing task to be an idle trigger Task t1 = sched.Tasks["Disk Cleanup"]; if (t1 != null) { t1.Triggers.Clear(); t1.Triggers.Add(new OnIdleTrigger()); t1.Save(); } // Create a new task with one of each kind of trigger Task t2; try { t2 = sched.Tasks.NewTask("Testing"); t2.ApplicationName = "notepad.exe"; t2.Comment = "Testing Notepad"; t2.Creator = "Author"; t2.Flags = TaskFlags.Interactive; t2.Hidden = true; t2.IdleWaitDeadlineMinutes = 20; t2.IdleWaitMinutes = 10; t2.MaxRunTime = new TimeSpan(1, 0, 0); t2.Parameters = @"c:\test.log"; t2.Priority = System.Diagnostics.ProcessPriorityClass.High; t2.WorkingDirectory = @"c:\"; t2.Triggers.Add(new RunOnceTrigger(DateTime.Now + TimeSpan.FromMinutes(1.0))); t2.Triggers.Add(new DailyTrigger(8, 30, 1)); t2.Triggers.Add(new WeeklyTrigger(6, 0, DaysOfTheWeek.Sunday)); t2.Triggers.Add(new MonthlyDOWTrigger(8, 0, DaysOfTheWeek.Monday | DaysOfTheWeek.Thursday, WhichWeek.FirstWeek | WhichWeek.ThirdWeek)); int[] days = {1,8,15,22,29}; t2.Triggers.Add(new MonthlyTrigger(9, 0, days, MonthsOfTheYear.July)); t2.Triggers.Add(new OnIdleTrigger()); t2.Triggers.Add(new OnLogonTrigger()); t2.Triggers.Add(new OnSystemStartTrigger()); t2.SetAccountInformation("DOMAIN\\username", "mypassword"); t2.Save(); } catch {} // Remove the idle trigger from the task Trigger trigger = new OnIdleTrigger(); int idx = t2.Triggers.IndexOf(trigger); if (idx != -1) t2.Triggers.RemoveAt(idx); // Delete a task sched.Tasks.Delete("Testing");
浙公网安备 33010602011771号