添加开机启动任务计划程序

添加 Microsoft.Win32.TaskScheduler.dll


using Microsoft.Win32.TaskScheduler;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;   


 /// <summary>

    /// 任务计划辅助类
    /// </summary>
    public class TaskServiceHelper
    {
        /// <summary>
        /// Adds the task.
        /// </summary>
        /// <param name="taskName">计划任务名称</param>
        /// <param name="exeFullName">exe执行程序全路径</param>
        /// <param name="description">计划任务描述</param>
        public static void AddTask(string taskName, string exeFullName, string description)
        {
            try
            {
                if (ExitTask(taskName))
                {
                    return;
                }
                TaskService taskService = new TaskService();
                TaskDefinition taskDefinition = taskService.NewTask();
                taskDefinition.RegistrationInfo.Description = description;
                taskDefinition.Settings.DisallowStartIfOnBatteries = false;
                LogonTrigger logonTrigger = new LogonTrigger();
                taskDefinition.Triggers.Add(logonTrigger);
                taskDefinition.Settings.StopIfGoingOnBatteries = false;
                taskDefinition.Principal.RunLevel = TaskRunLevel.Highest;
                taskDefinition.Principal.GroupId = "Administrators";
                taskDefinition.Actions.Add(new ExecAction(exeFullName, "", null));
                taskService.RootFolder.RegisterTaskDefinition(taskName, taskDefinition);
            }
            catch (Exception exception)
            {
                // Log.Error($"添加计划任务失败:{exception.Message}");
            }
        }


        /// <summary>
        /// Exits the task.
        /// </summary>
        /// <param name="taskName">Name of the task.</param>
        /// <returns></returns>
        public static bool ExitTask(string taskName)
        {
            bool isExist = false;
            foreach (Task task in new TaskService().RootFolder.Tasks)
            {
                if (task.Name.Equals(taskName))
                {
                    isExist = true;
                    break;
                }
            }
            return isExist;
        }


        /// <summary>
        /// Deletes the test task.
        /// </summary>
        /// <param name="taskName">Name of the task.</param>
        public static void DeleteTask(string taskName)
        {
            try
            {
                TaskService ts = new TaskService();
                ts.RootFolder.DeleteTask(taskName);
            }
            catch (Exception exception)
            {
                //Log.Error($"删除计划任务失败:{exception.Message}");
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/vs920079469vs/article/details/79245682
今日推荐