private static TaskBaseAction CreateTaskAction(Microsoft.Win32.TaskScheduler.Action action) { var taskAction = default(TaskBaseAction); switch (action.ActionType) { case TaskActionType.Execute: var executeAction = action as ExecAction; taskAction = new TaskExecuteAction { Arguments = executeAction.Arguments, Command = executeAction.Path, WorkingDirectory = executeAction.WorkingDirectory }; break; } if (taskAction != null) { taskAction.ID = action.Id; } return(taskAction); }
private string GetCommandText(Action action) { ExecAction execAction = action as ExecAction; ShowMessageAction showMessageAction = action as ShowMessageAction; ComHandlerAction comHandlerAction = action as ComHandlerAction; EmailAction emailAction = action as EmailAction; if (execAction != null) { return($"{execAction.Path} {execAction.Arguments}"); } else if (showMessageAction != null) { return($"Show message: '{showMessageAction.Title}'"); } else if (comHandlerAction != null) { return($"COM handler: '{comHandlerAction.ClassName}'"); } else if (emailAction != null) { return($"Send email: '{emailAction.Subject}'"); } else { return("unknown action."); } }
private static string GetPathFromAction(Microsoft.Win32.TaskScheduler.Action action) { switch (action) { case ExecAction act: return($"{act.Path} {act.Arguments}"); case EmailAction act: return($"Email To: {act.To} From: {act.From} Subject: {act.Subject}"); case ComHandlerAction act: return($"{act.ActionType} - {act}"); case ShowMessageAction act: return($"{act.ActionType} - {act}"); default: return($"Unknown action type: '{action.ActionType}'"); } }
public Dev2Action(Action nativeTnstance) { _nativeTnstance = nativeTnstance; }
public Dev2Action(Microsoft.Win32.TaskScheduler.Action nativeTnstance) { _nativeTnstance = nativeTnstance; }
public IAction CreateAction(Microsoft.Win32.TaskScheduler.Action action) { return(new Dev2Action(action)); }
public ActionsData(Action action) { this.action = action; }
private string GetCommandText(Action action) { ExecAction execAction = action as ExecAction; ShowMessageAction showMessageAction = action as ShowMessageAction; ComHandlerAction comHandlerAction = action as ComHandlerAction; EmailAction emailAction = action as EmailAction; if (execAction != null) { return $"{execAction.Path} {execAction.Arguments}"; } else if (showMessageAction != null) { return $"Show message: '{showMessageAction.Title}'"; } else if (comHandlerAction != null) { return $"COM handler: '{comHandlerAction.ClassName}'"; } else if (emailAction != null) { return $"Send email: '{emailAction.Subject}'"; } else { return "unknown action."; } }
/// <summary> /// 创建一个计划任务 /// </summary> /// <param name="taskName">计划任务名称</param> /// <param name="taskDescription">计划任务描述</param> /// <param name="trigger">触发条件</param> /// <param name="action">执行任务</param> /// <param name="subFolderName">计划任务所在的文件夹</param> public static void CreateTask(string subFolderName, string taskName, string taskDescription, Trigger trigger, Microsoft.Win32.TaskScheduler.Action action) { using (TaskService ts = new TaskService()) { using (TaskDefinition td = ts.NewTask()) { td.RegistrationInfo.Description = taskDescription; td.RegistrationInfo.Author = System.Security.Principal.WindowsIdentity.GetCurrent().Name; #region LogonType元素和UserId元素被一起使用,以定义需要运行这些任务的用户。 //http://stackoverflow.com/questions/8170236/how-to-set-run-only-if-logged-in-and-run-as-with-taskscheduler-in-c //td.Principal.UserId = System.Security.Principal.WindowsIdentity.GetCurrent().Name; //td.Principal.LogonType = TaskLogonType.InteractiveToken; #endregion td.Principal.RunLevel = TaskRunLevel.Highest; td.Triggers.Add(trigger); td.Actions.Add(action); TaskFolder folder = ts.RootFolder; if (!string.IsNullOrWhiteSpace(subFolderName)) { if (!folder.SubFolders.Exists(subFolderName)) { folder = folder.CreateFolder(subFolderName); } else { folder = folder.SubFolders[subFolderName]; } } folder.RegisterTaskDefinition(taskName, td); folder.Dispose(); folder = null; } } }