在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
整理自己用到的用.net的方法操作windows计划任务程序,整合了一些经常会用到的方法: 代码如下,DLL和必要的操作都在代码注释中: /// <summary> /// 1.引用:C:\Windows\System32\taskschd.dll /// 2.属性:嵌入互操作类型=False /// 3.命名空间:using TaskScheduler; /// http://msdn.microsoft.com/en-us/library/windows/desktop/aa380751(v=vs.85).aspx /// 测试操作计划任务 /// 获取,运行,停止,禁用,启用,新建计划任务。 /// </summary> private static void TestGetTask() { //1.连接TaskSchedulerClass TaskSchedulerClass scheduler = new TaskSchedulerClass(); scheduler.Connect( "",//电脑名或者IP "",//用户名 "", //域名 "");//密码 //2.获取计划任务文件夹(参数:选中计划任务后'常规'中的'位置',根文件夹为"\\") ITaskFolder folder = scheduler.GetFolder("\\"); //3.例:获取名称为"TaskA"的计划任务 IRegisteredTask task = folder.GetTask("TaskA"); //运行(带参数) IRunningTask runningTask = task.Run(null); //停止(参数为预留参数,只能填0) task.Stop(0); //禁用 task.Enabled = false; //启用 task.Enabled = true; //4.例:修改触发器 ITaskDefinition definition = task.Definition; //清除 definition.Triggers.Clear(); //添加 ITrigger trigger = definition.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY); trigger.Id = "DailyTrigger"; trigger.StartBoundary = "2008-01-01T12:00:00"; trigger.EndBoundary = "2008-01-31T12:00:00"; //更新触发器 folder.RegisterTaskDefinition("TaskA", definition, (int)_TASK_CREATION.TASK_UPDATE, "",//user "",//password _TASK_LOGON_TYPE.TASK_LOGON_NONE, ""); //5.例:添加计划任务 ITaskDefinition newTask = scheduler.NewTask(0); newTask.RegistrationInfo.Author = "Author"; newTask.RegistrationInfo.Description = "My New Task"; newTask.Settings.RunOnlyIfIdle = true; IDailyTrigger trigger1 = (IDailyTrigger)newTask.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY); trigger1.Id = "DailyTrigger"; trigger1.StartBoundary = "2014-01-01T12:00:00"; trigger1.EndBoundary = "2014-01-31T12:00:00"; IEmailAction action = (IEmailAction)newTask.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_SEND_EMAIL); action.Id = "Email action"; action.Server = "server..."; action.From = "sender..."; action.To = "recipient..."; action.Subject = "The subject of the email..."; action.Body = "The body text of the email..."; IRegisteredTask regTask = folder.RegisterTaskDefinition( "newTask", newTask, (int)_TASK_CREATION.TASK_CREATE_OR_UPDATE, "", //用户名 "", //密码 _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN, ""); IRunningTask runTask = regTask.Run(null); Console.ReadLine(); }
|
请发表评论