donqiang的博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

.net c#操作windows计划任务程序,新建,运行,停止,启用,禁用计划任务

 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         }

 

posted on 2014-10-16 08:54  donqiang  阅读(647)  评论(0)    收藏  举报