任务计划程序2.0的C#API

Mat*_*dle 33 c#

有没有人对基于(基于COM)的Task Scheduler 2.0 API的.NET c#包装有任何建议?

无法使用Google找到任何内容.

(我知道有基于.net的调度程序,如Quartz.net,但我需要在Windows Scheduler中使用功能齐全的GUI)

谢谢,

马特

Tjc*_*ool 11

如果你不想使用任何第三方包装器,那么下面是调度task.Code的示例代码在Windows 7中工作.

//create task service instance
ITaskService taskService = new TaskSchedulerClass();
taskService.Connect();
ITaskDefinition taskDefinition = taskService.NewTask(0);
taskDefinition.Settings.Enabled = true;
taskDefinition.Settings.Compatibility = _TASK_COMPATIBILITY.TASK_COMPATIBILITY_V2_1;

//create trigger for task creation.
ITriggerCollection _iTriggerCollection = taskDefinition.Triggers;
ITrigger _trigger = _iTriggerCollection.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_TIME);
_trigger.StartBoundary = DateTime.Now.AddSeconds(15).ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");
_trigger.EndBoundary = DateTime.Now.AddMinutes(1).ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");
_trigger.Enabled = true;

///get actions.
IActionCollection actions = taskDefinition.Actions;
_TASK_ACTION_TYPE actionType = _TASK_ACTION_TYPE.TASK_ACTION_EXEC;

//create new action
IAction action = actions.Create(actionType);
IExecAction execAction = action as IExecAction;
execAction.Path = @"C:\Windows\System32\notepad.exe";
ITaskFolder rootFolder = taskService.GetFolder(@"\");

//register task.
rootFolder.RegisterTaskDefinition("test", taskDefinition, 6, null, null, _TASK_LOGON_TYPE.TASK_LOGON_NONE, null);
Run Code Online (Sandbox Code Playgroud)

  • 没关系 - 我找到了"taskschd.dll"文件,在让Visual Studio生成Interop包装之后,能够将它导入到我的项目中.如果我只能对PowerShell ISE执行相同操作并将其部署到目标目标计算机... (4认同)

Rob*_*sor 5

命令行是否足够好?

at 23:39 /every:wednesday defrag c:

  • 或者更好的是它的继任者,`schtasks` (6认同)