1 /// <summary>
2 /// 1.引用:C:\Windows\System32\taskschd.dll
3 /// 2.属性:嵌入互操作类型=False
4 /// 3.命名空间:using TaskScheduler;
5 /// http://msdn.microsoft.com/en-us/library/windows/desktop/aa380751(v=vs.85).aspx
6 /// 测试操作计划任务
7 /// 获取,运行,停止,禁用,启用,新建计划任务。
8 /// </summary>
9 private static void TestGetTask()
10 {
11 //1.连接TaskSchedulerClass
12 TaskSchedulerClass scheduler = new TaskSchedulerClass();
13 scheduler.Connect(
14 "",//电脑名或者IP
15 "",//用户名
16 "", //域名
17 "");//密码
18
19 //2.获取计划任务文件夹(参数:选中计划任务后'常规'中的'位置',根文件夹为"\\")
20 ITaskFolder folder = scheduler.GetFolder("\\");
21
22 //3.例:获取名称为"TaskA"的计划任务
23 IRegisteredTask task = folder.GetTask("TaskA");
24 //运行(带参数)
25 IRunningTask runningTask = task.Run(null);
26 //停止(参数为预留参数,只能填0)
27 task.Stop(0);
28 //禁用
29 task.Enabled = false;
30 //启用
31 task.Enabled = true;
32
33 //4.例:修改触发器
34 ITaskDefinition definition = task.Definition;
35 //清除
36 definition.Triggers.Clear();
37 //添加
38 ITrigger trigger = definition.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
39 trigger.Id = "DailyTrigger";
40 trigger.StartBoundary = "2008-01-01T12:00:00";
41 trigger.EndBoundary = "2008-01-31T12:00:00";
42 //更新触发器
43 folder.RegisterTaskDefinition("TaskA", definition, (int)_TASK_CREATION.TASK_UPDATE,
44 "",//user
45 "",//password
46 _TASK_LOGON_TYPE.TASK_LOGON_NONE, "");
47
48 //5.例:添加计划任务
49 ITaskDefinition newTask = scheduler.NewTask(0);
50 newTask.RegistrationInfo.Author = "Author";
51 newTask.RegistrationInfo.Description = "My New Task";
52 newTask.Settings.RunOnlyIfIdle = true;
53
54 IDailyTrigger trigger1 = (IDailyTrigger)newTask.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
55 trigger1.Id = "DailyTrigger";
56 trigger1.StartBoundary = "2014-01-01T12:00:00";
57 trigger1.EndBoundary = "2014-01-31T12:00:00";
58
59 IEmailAction action = (IEmailAction)newTask.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_SEND_EMAIL);
60 action.Id = "Email action";
61 action.Server = "server...";
62 action.From = "sender...";
63 action.To = "recipient...";
64 action.Subject = "The subject of the email...";
65 action.Body = "The body text of the email...";
66
67 IRegisteredTask regTask = folder.RegisterTaskDefinition(
68 "newTask",
69 newTask,
70 (int)_TASK_CREATION.TASK_CREATE_OR_UPDATE,
71 "", //用户名
72 "", //密码
73 _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN,
74 "");
75
76 IRunningTask runTask = regTask.Run(null);
77
78
79 Console.ReadLine();
80 }