• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[原创].netc#操作windows计划任务程序,新建,运行,停止,启用,禁用计划任务 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

整理自己用到的用.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();
        }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#代码优化发布时间:2022-07-18
下一篇:
c#连接mysql数据库弹出异常Unknownsystemvariable'lower_case_table_names'发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap