代码之家  ›  专栏  ›  技术社区  ›  Matt Randle

任务调度程序2.0的C#API[已关闭]

c#
  •  31
  • Matt Randle  · 技术社区  · 14 年前

    有人对.NET c#包装器(基于COM的)任务调度程序2.0 API有什么建议吗?

    (我知道有一些基于.net的调度程序,如Quartz.net,但我需要windows调度程序中功能齐全的图形用户界面)

    谢谢,

    马特

    4 回复  |  直到 14 年前
        1
  •  34
  •   Dave Markle    5 年前

    请参阅GitHub上的以下项目:

    https://github.com/dahall/taskscheduler

        2
  •  11
  •   Tjcool    11 年前

    如果不想使用任何第三方包装器,下面是计划任务的示例代码。代码在Windows7中有效。

    //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);
    
        3
  •  5
  •   Rob Fonseca-Ensor    14 年前

    命令行是否足够好?

    at 23:39 /every:wednesday defrag c:

        4
  •  0
  •   Pabitra Dash    10 年前

    您可以通过下面的Nuget命令获得功能完整的GUI。

    PM>安装包任务计划程序