public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void ExcuteFunction()
{
ShowNavigationMsg();
var input = "";
var exit = false;
while (exit == false && string.IsNullOrEmpty(input = Console.ReadKey().KeyChar.ToString().ToLower()) == false)
{
switch (input)
{
case "a":
CreateTestTask();
break;
case "b":
RetrieveTestTask();
break;
case "c":
DeleteTestTask();
break;
case "d":
exit = true;
break;
default:
ShowNavigationMsg();
break;
}
}
}
///
/// 删除计划任务
///
private static void DeleteTestTask()
{
// 计划任务服务
TaskService ts = new TaskService();
ts.RootFolder.DeleteTask("mySoul Task");
ShowNavigationMsg();
}
///
/// 查询计划任务
///
private static void RetrieveTestTask()
{
// 计划任务服务
TaskService ts = new TaskService();
//如果计划任务不为空
Task t = ts.GetTask(@"mySoul Task");
if (null != t)
{
Console.WriteLine("Task Name={0}", t.Name);
Console.WriteLine("Task Execution Time={0}", t.LastRunTime);
Console.WriteLine("Task Last Run Result={0}", t.LastTaskResult);
Console.WriteLine("Task Next Execution Time={0}", t.NextRunTime);
}
ShowNavigationMsg();
}
static void ShowNavigationMsg()
{
Console.WriteLine();
Console.WriteLine("Please choose your action by input a charactor:");
Console.WriteLine("[a]Add mySoul Task [b]Retrieve mySoul Task Status ");
Console.WriteLine("[c]Delete mySoul Task [d]Eixt");
}
///
/// 创建计划任务
///
private static void CreateTestTask(string applicationName, string applicationStartupPath)
{
//short DaysInterval = 1;
// 计划任务服务
TaskService ts = new TaskService();
// 创建一个计划任务
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "自动上传工程文档";
td.RegistrationInfo.Author = "mySoul";
//每天启动
DailyTrigger dt=new DailyTrigger(1);
//Trigger dt = new DailyTrigger() { DaysInterval = 1 };
//Trigger dt = new DailyTrigger();
//DailyTrigger dt = (DailyTrigger)td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });
//DailyTrigger dt1 = (DailyTrigger)td.Triggers.Add(new DailyTrigger { DaysInterval = 2 });
//限制计划任务每次执行时间不能超过1小时
dt.ExecutionTimeLimit = TimeSpan.FromHours(1);
//dt.StartBoundary = DateTime.Parse("12:00 AM");
dt.StartBoundary = DateTime.Now.AddMinutes(10);
// task.RegistrationInfo.Date = dt.AddMinutes(1).ToString("yyyy-MM-ddTHH:mm:ss");
//全天重复执行
dt.Repetition.Duration = TimeSpan.FromHours(24);
//每隔120分钟重复一次
dt.Repetition.Interval = TimeSpan.FromMinutes(120);
//将触发器添加到计划任务td的触发器中
td.Triggers.Add(dt);
//创建一个执行操作
var exe = new ExecAction(applicationName, null,applicationStartupPath);
//var exe = new ExecAction("notepad.exe", "C:\\test.log", null);
//添加执行操作到计划任务的操作中
td.Actions.Add(exe);
//注册计划任务
ts.RootFolder.RegisterTaskDefinition(@"mySoul Task", td);
ShowNavigationMsg();
}
public enum TaskTriggerType
{
// Summary:
// Triggers the task when a specific event occurs. Version 1.2 only.
Event = 0,
//
// Summary:
// Triggers the task at a specific time of day.
Time = 1,
//
// Summary:
// Triggers the task on a daily schedule.
Daily = 2,
//
// Summary:
// Triggers the task on a weekly schedule.
Weekly = 3,
//
// Summary:
// Triggers the task on a monthly schedule.
Monthly = 4,
//
// Summary:
// Triggers the task on a monthly day-of-week schedule.
MonthlyDOW = 5,
//
// Summary:
// Triggers the task when the computer goes into an idle state.
Idle = 6,
//
// Summary:
// Triggers the task when the task is registered. Version 1.2 only.
Registration = 7,
//
// Summary:
// Triggers the task when the computer boots.
Boot = 8,
//
// Summary:
// Triggers the task when a specific user logs on.
Logon = 9,
//
// Summary:
// Triggers the task when a specific user session state changes. Version 1.2
// only.
SessionStateChange = 11,
}
private void Form1_Load(object sender, EventArgs e)
{
string fileName = "AutoUpLoadFile.exe";
string fileFullPath = Application.StartupPath;
// 计划任务服务
TaskService ts = new TaskService();
//如果计划任务不为空
Task t = ts.GetTask(@"mySoul Task");
if (null == t)
{
CreateTestTask(fileName,fileFullPath);
}
}
}
用TaskScheduler创建计划任务
最新推荐文章于 2023-11-29 09:55:49 发布