Udostępnij za pośrednictwem


Code to create a task in Windows Task Scheduler

 

    1: TaskSchedulerClass scheduler = new TaskSchedulerClass();
    2: scheduler.Connect(null, null, null, null);
    3:  
    4: ITaskDefinition task = scheduler.NewTask(0);
    5: task.RegistrationInfo.Author = "MS PFE";
    6: task.RegistrationInfo.Description = ".....";
    7:  
    8: IDailyTrigger trigger = (IDailyTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
    9: trigger.Id = "TaskName-Trigger";
   10: trigger.DaysInterval = 1;
   11: trigger.StartBoundary = "2012-06-01T23:55:00";
   12: trigger.EndBoundary = "2020-06-01T23:55:00";
   13:  
   14: IExecAction action = (IExecAction)task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_EXEC);
   15: action.Id = "GetContentDBDetails-Action";
   16: action.Path = @assemblypath;
   17: action.WorkingDirectory = @"C:\Program Files\Microsoft\..."; //generally the folder in which assembly is placed
   18:  
   19: ITaskFolder folder = scheduler.GetFolder("\\");
   20: IRegisteredTask regTask = folder.RegisterTaskDefinition(
   21:     "TaskName",
   22:     task,
   23:     (int)_TASK_CREATION.TASK_CREATE_OR_UPDATE,
   24:     Environment.UserName, //System.Security.Principal.WindowsIdentity.GetCurrent().Name,
   25:     null, 
   26:     _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN, "");