添加 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}");
}
}
}